diff options
Diffstat (limited to 'rt/lib/RT')
82 files changed, 4949 insertions, 46214 deletions
diff --git a/rt/lib/RT/ACE.pm b/rt/lib/RT/ACE.pm index 8c2551c83..1501a125e 100755 --- a/rt/lib/RT/ACE.pm +++ b/rt/lib/RT/ACE.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -69,7 +44,11 @@ RT::ACE =cut package RT::ACE; -use base 'RT::Record'; +use RT::Record; + + +use vars qw( @ISA ); +@ISA= qw( RT::Record ); sub _Init { my $self = shift; @@ -82,7 +61,7 @@ sub _Init { -=head2 Create PARAMHASH +=item Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -125,7 +104,7 @@ sub Create { -=head2 id +=item id Returns the current value of id. (In the database, id is stored as int(11).) @@ -134,14 +113,14 @@ Returns the current value of id. =cut -=head2 PrincipalType +=item PrincipalType Returns the current value of PrincipalType. (In the database, PrincipalType is stored as varchar(25).) -=head2 SetPrincipalType VALUE +=item SetPrincipalType VALUE Set PrincipalType to VALUE. @@ -152,14 +131,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 PrincipalId +=item PrincipalId Returns the current value of PrincipalId. (In the database, PrincipalId is stored as int(11).) -=head2 SetPrincipalId VALUE +=item SetPrincipalId VALUE Set PrincipalId to VALUE. @@ -170,14 +149,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 RightName +=item RightName Returns the current value of RightName. (In the database, RightName is stored as varchar(25).) -=head2 SetRightName VALUE +=item SetRightName VALUE Set RightName to VALUE. @@ -188,14 +167,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ObjectType +=item ObjectType Returns the current value of ObjectType. (In the database, ObjectType is stored as varchar(25).) -=head2 SetObjectType VALUE +=item SetObjectType VALUE Set ObjectType to VALUE. @@ -206,14 +185,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ObjectId +=item ObjectId Returns the current value of ObjectId. (In the database, ObjectId is stored as int(11).) -=head2 SetObjectId VALUE +=item SetObjectId VALUE Set ObjectId to VALUE. @@ -224,14 +203,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 DelegatedBy +=item DelegatedBy Returns the current value of DelegatedBy. (In the database, DelegatedBy is stored as int(11).) -=head2 SetDelegatedBy VALUE +=item SetDelegatedBy VALUE Set DelegatedBy to VALUE. @@ -242,14 +221,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 DelegatedFrom +=item DelegatedFrom Returns the current value of DelegatedFrom. (In the database, DelegatedFrom is stored as int(11).) -=head2 SetDelegatedFrom VALUE +=item SetDelegatedFrom VALUE Set DelegatedFrom to VALUE. @@ -261,25 +240,25 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -sub _CoreAccessible { +sub _ClassAccessible { { id => - {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, type => 'int(11)', default => ''}, PrincipalType => - {read => 1, write => 1, sql_type => 12, length => 25, is_blob => 0, is_numeric => 0, type => 'varchar(25)', default => ''}, + {read => 1, write => 1, type => 'varchar(25)', default => ''}, PrincipalId => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, RightName => - {read => 1, write => 1, sql_type => 12, length => 25, is_blob => 0, is_numeric => 0, type => 'varchar(25)', default => ''}, + {read => 1, write => 1, type => 'varchar(25)', default => ''}, ObjectType => - {read => 1, write => 1, sql_type => 12, length => 25, is_blob => 0, is_numeric => 0, type => 'varchar(25)', default => ''}, + {read => 1, write => 1, type => 'varchar(25)', default => ''}, ObjectId => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, DelegatedBy => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, DelegatedFrom => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, } }; @@ -311,7 +290,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/ACL.pm b/rt/lib/RT/ACL.pm index 26acbd96c..81f59c6d0 100755 --- a/rt/lib/RT/ACL.pm +++ b/rt/lib/RT/ACL.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -72,9 +47,12 @@ use strict; package RT::ACL; -use base 'RT::SearchBuilder'; +use RT::SearchBuilder; use RT::ACE; +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); + sub _Init { my $self = shift; @@ -86,7 +64,7 @@ sub _Init { } -=head2 NewItem +=item NewItem Returns an empty new RT::ACE item @@ -123,7 +101,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Action.pm b/rt/lib/RT/Action.pm index 0993d5817..42bf767e7 100755 --- a/rt/lib/RT/Action.pm +++ b/rt/lib/RT/Action.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} =head1 NAME @@ -204,6 +204,17 @@ sub IsApplicable { } # }}} +sub Options { + my $self = shift; + return(); +} + +sub Rules { + my $self = shift; + return () if !$self->ScripObj or !$self->ScripObj->ActionRules; + return(split "\n", $self->ScripObj->ActionRules); +} + # {{{ sub DESTROY sub DESTROY { my $self = shift; diff --git a/rt/lib/RT/Action/Autoreply.pm b/rt/lib/RT/Action/Autoreply.pm index a41211888..81f7bddfa 100755 --- a/rt/lib/RT/Action/Autoreply.pm +++ b/rt/lib/RT/Action/Autoreply.pm @@ -1,71 +1,34 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK package RT::Action::Autoreply; +require RT::Action::SendEmail; use strict; -use warnings; - -use base qw(RT::Action::SendEmail); - -=head2 Prepare - -Set up the relevant recipients, then call our parent. - -=cut +use vars qw/@ISA/; +@ISA = qw(RT::Action::SendEmail); -sub Prepare { - my $self = shift; - $self->SetRecipients(); - $self->SUPER::Prepare(); -} - # {{{ sub SetRecipients =head2 SetRecipients @@ -96,37 +59,35 @@ Set this message\'s return address to the apropriate queue address sub SetReturnAddress { my $self = shift; + my %args = ( is_comment => 0, + @_ + ); - my $friendly_name; - - if (RT->Config->Get('UseFriendlyFromLine')) { - $friendly_name = $self->TicketObj->QueueObj->Description || - $self->TicketObj->QueueObj->Name; - } - - $self->SUPER::SetReturnAddress( @_, friendly_name => $friendly_name ); + my $replyto; + if ($args{'is_comment'}) { + $replyto = $self->TicketObj->QueueObj->CommentAddress || + $RT::CommentAddress; + } + else { + $replyto = $self->TicketObj->QueueObj->CorrespondAddress || + $RT::CorrespondAddress; + } + + unless ($self->TemplateObj->MIMEObj->head->get('From')) { + my $friendly_name = $self->TicketObj->QueueObj->Description || + $self->TicketObj->QueueObj->Name; + $friendly_name =~ s/"/\\"/g; + $self->SetHeader('From', "\"$friendly_name\" <$replyto>"); + } + + unless ($self->TemplateObj->MIMEObj->head->get('Reply-To')) { + $self->SetHeader('Reply-To', "$replyto"); + } } # }}} -# {{{{ sub SetRTSpecialHeaders - -=head2 SetRTSpecialHeaders - -Set the C<Auto-Generated> header to C<auto-replied>, in accordance -with RFC3834. - -=cut - -sub SetRTSpecialHeaders { - my $self = shift; - $self->SUPER::SetRTSpecialHeaders(@_); - $self->SetHeader( 'Auto-Submitted', 'auto-replied' ); -} - -# }}} - eval "require RT::Action::Autoreply_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Autoreply_Vendor.pm}); eval "require RT::Action::Autoreply_Local"; diff --git a/rt/lib/RT/Action/CreateTickets.pm b/rt/lib/RT/Action/CreateTickets.pm index bfe14a67d..74520ca69 100644 --- a/rt/lib/RT/Action/CreateTickets.pm +++ b/rt/lib/RT/Action/CreateTickets.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} package RT::Action::CreateTickets; @@ -352,7 +352,6 @@ sub CreateByTemplate { local $T::TOP = $T::TOP; local $T::ID = $T::ID; $T::Tickets{'TOP'} = $T::TOP = $top if $top; - local $T::TransactionObj = $self->TransactionObj; my $ticketargs; my ( @links, @postponed ); @@ -763,6 +762,7 @@ sub ParseLines { FinalPriority => $args{'finalpriority'} || 0, SquelchMailTo => $args{'squelchmailto'}, Type => $args{'type'}, + $self->Rules ); if ( $args{content} ) { @@ -1239,6 +1239,24 @@ sub PostProcess { } +sub Options { + my $self = shift; + my $queues = RT::Queues->new($self->CurrentUser); + $queues->UnLimit; + my @names; + while (my $queue = $queues->Next) { + push @names, $queue->Id, $queue->Name; + } + return ( + { + 'name' => 'Queue', + 'label' => 'In queue', + 'type' => 'select', + 'options' => \@names + } + ) +} + eval "require RT::Action::CreateTickets_Vendor"; die $@ if ( $@ && $@ !~ qr{^Can't locate RT/Action/CreateTickets_Vendor.pm} ); eval "require RT::Action::CreateTickets_Local"; diff --git a/rt/lib/RT/Action/EscalatePriority.pm b/rt/lib/RT/Action/EscalatePriority.pm index 86e3e648a..3704ee73f 100644 --- a/rt/lib/RT/Action/EscalatePriority.pm +++ b/rt/lib/RT/Action/EscalatePriority.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} =head1 NAME @@ -121,7 +121,12 @@ sub Prepare { # we've got a due date. now there are other things we should do else { - my $diff_in_seconds = $due->Diff(time()); + my $arg = $self->Argument || ''; + my $now = time(); + if ( $arg =~ /CurrentTime:\s*(\d+)/i ) { + $now = $1; + } + my $diff_in_seconds = $due->Diff($now); my $diff_in_days = int( $diff_in_seconds / 86400); #if we haven't hit the due date yet diff --git a/rt/lib/RT/Action/EscalateQueue.pm b/rt/lib/RT/Action/EscalateQueue.pm new file mode 100755 index 000000000..adafbdfb7 --- /dev/null +++ b/rt/lib/RT/Action/EscalateQueue.pm @@ -0,0 +1,141 @@ +=head1 NAME + +RT::Action::EscalateQueue - move a ticket to a different queue when it reaches its final priority + +=head1 DESCRIPTION + +EscalateQueue is a ScripAction that will move a ticket to a new +queue when its priority equals its final priority. It is designed +to be used with LinearEscalate or another action that increments +ticket priority on some schedule. Like those actions, it is intended +to be called from an escalation tool. + +=head1 CONFIGURATION + +FinalPriority is a ticket property, defaulting to the queue property. + +EscalateQueue is a queue custom field using RT::CustomFieldValues::Queue +as its data source (that is, it refers to another queue). Tickets at +FinalPriority will be moved to that queue. + +From a shell you can use the following command: + + rt-crontool --search RT::Search::FromSQL --search-arg \ + "(Status='new' OR Status='open' OR Status = 'stalled')" \ + --action RT::Action::EscalateQueue + +No action argument is needed. Each ticket will be escalated based on the +EscalateQueue property of its current queue. + +=cut + +package RT::Action::EscalateQueue; + +use strict; +use warnings; +use base qw(RT::Action); + +our $VERSION = '0.01'; + +#What does this type of Action does + +sub Describe { + my $self = shift; + my $class = ref($self) || $self; + return "$class will move a ticket to its escalation queue when it reaches its final priority." +} + +#This Prepare only returns 1 if the ticket will be escalated. + +sub Prepare { + my $self = shift; + + my $ticket = $self->TicketObj; + my $queue = $ticket->QueueObj; + my $new_queue = $queue->FirstCustomFieldValue('EscalateQueue'); + + my $ticketid = 'Ticket #'.$ticket->Id; #for debug messages + if ( $ticket->InitialPriority == $ticket->FinalPriority ) { + $RT::Logger->debug("$ticketid has no priority range. Not escalating."); + return 0; + } + + if ( $ticket->Priority == $ticket->FinalPriority ) { + if (!$new_queue) { + $RT::Logger->debug("$ticketid has no escalation queue. Not escalating."); + return 0; + } + if ($new_queue eq $queue->Name) { + $RT::Logger->debug("$ticketid would be escalated to its current queue."); + return 0; + } + $self->{'new_queue'} = $new_queue; + return 1; + } + return 0; +} + +# whereas Commit returns 1 if it succeeds at whatever it's doing +sub Commit { + my $self = shift; + + return 1 if !exists($self->{'new_queue'}); + + my $ticket = $self->TicketObj; + my $ticketid = 'Ticket #'.$ticket->Id; + my $new_queue = RT::Queue->new($ticket->CurrentUser); + $new_queue->Load($self->{'new_queue'}); + if ( ! $new_queue ) { + $RT::Logger->debug("Escalation queue ".$self->{'new_queue'}." not found."); + return 0; + } + + $RT::Logger->debug("Escalating $ticket from ".$ticket->QueueObj->Name . + ' to '. $new_queue->Name . ', FinalPriority '.$new_queue->FinalPriority); + + my ( $val, $msg ) = $ticket->SetQueue($self->{'new_queue'}); + if (! $val) { + $RT::Logger->error( "Couldn't set queue: $msg" ); + return (0, $msg); + } + + # Set properties of the ticket according to its new queue, so that + # escalation Does What You Expect. Don't record transactions for this; + # the queue change should be enough. + + ( $val, $msg ) = $ticket->_Set( + Field => 'FinalPriority', + Value => $new_queue->FinalPriority, + RecordTransaction => 0, + ); + if (! $val) { + $RT::Logger->error( "Couldn't set new final priority: $msg" ); + return (0, $msg); + } + my $Due = new RT::Date( $ticket->CurrentUser ); + if ( my $due_in = $new_queue->DefaultDueIn ) { + $Due->SetToNow; + $Due->AddDays( $due_in ); + } + ( $val, $msg ) = $ticket->_Set( + Field => 'Due', + Value => $Due->ISO, + RecordTransaction => 0, + ); + if (! $val) { + $RT::Logger->error( "Couldn't set new due date: $msg" ); + return (0, $msg); + } + return 1; +} + +1; + +=head1 AUTHOR + +Mark Wells E<lt>mark@freeside.bizE<gt> + +Based on in part LinearEscalate by Kevin Riggle E<lt>kevinr@bestpractical.comE<gt> +and Ruslan Zakirov E<lt>ruz@bestpractical.comE<gt> . + +=cut diff --git a/rt/lib/RT/Action/Generic.pm b/rt/lib/RT/Action/Generic.pm index 7793622a7..007d299c7 100755 --- a/rt/lib/RT/Action/Generic.pm +++ b/rt/lib/RT/Action/Generic.pm @@ -1,54 +1,29 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK =head1 NAME - RT::Action::Generic - deprecated, see RT::Action + RT::Action::Generic - a generic baseclass for RT Actions =head1 SYNOPSIS @@ -56,25 +31,165 @@ =head1 DESCRIPTION -This module is provided only for backwards compatibility. - =head1 METHODS +=begin testing + +ok (require RT::Action::Generic); + +=end testing =cut -use strict; -use warnings; package RT::Action::Generic; -use base 'RT::Action'; + +use strict; + +# {{{ sub new +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + my $self = {}; + bless ($self, $class); + $self->_Init(@_); + return $self; +} +# }}} + +# {{{ sub new +sub loc { + my $self = shift; + return $self->{'ScripObj'}->loc(@_); +} +# }}} + +# {{{ sub _Init +sub _Init { + my $self = shift; + my %args = ( TransactionObj => undef, + TicketObj => undef, + ScripObj => undef, + TemplateObj => undef, + Argument => undef, + Type => undef, + @_ ); + + + $self->{'Argument'} = $args{'Argument'}; + $self->{'ScripObj'} = $args{'ScripObj'}; + $self->{'TicketObj'} = $args{'TicketObj'}; + $self->{'TransactionObj'} = $args{'TransactionObj'}; + $self->{'TemplateObj'} = $args{'TemplateObj'}; + $self->{'Type'} = $args{'Type'}; +} +# }}} + +# Access Scripwide data + +# {{{ sub Argument +sub Argument { + my $self = shift; + return($self->{'Argument'}); +} +# }}} + +# {{{ sub TicketObj +sub TicketObj { + my $self = shift; + return($self->{'TicketObj'}); +} +# }}} + +# {{{ sub TransactionObj +sub TransactionObj { + my $self = shift; + return($self->{'TransactionObj'}); +} +# }}} + +# {{{ sub TemplateObj +sub TemplateObj { + my $self = shift; + return($self->{'TemplateObj'}); +} +# }}} + +# {{{ sub ScripObj +sub ScripObj { + my $self = shift; + return($self->{'ScripObj'}); +} +# }}} + +# {{{ sub Type +sub Type { + my $self = shift; + return($self->{'Type'}); +} +# }}} + + +# Scrip methods + +#Do what we need to do and send it out. + +# {{{ sub Commit +sub Commit { + my $self = shift; + return(0, $self->loc("Commit Stubbed")); +} +# }}} + + +#What does this type of Action does + +# {{{ sub Describe +sub Describe { + my $self = shift; + return $self->loc("No description for [_1]", ref $self); +} +# }}} + + +#Parse the templates, get things ready to go. + +# {{{ sub Prepare +sub Prepare { + my $self = shift; + return (0, $self->loc("Prepare Stubbed")); +} +# }}} + + +#If this rule applies to this transaction, return true. + +# {{{ sub IsApplicable +sub IsApplicable { + my $self = shift; + return(undef); +} +# }}} + +# {{{ sub DESTROY +sub DESTROY { + my $self = shift; + + # We need to clean up all the references that might maybe get + # oddly circular + $self->{'TemplateObj'} =undef + $self->{'TicketObj'} = undef; + $self->{'TransactionObj'} = undef; + $self->{'ScripObj'} = undef; + + + +} + +# }}} eval "require RT::Action::Generic_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Generic_Vendor.pm}); -warn "RT::Action::Generic has become RT::Action. Please adjust your deprecated RT::Action::Generic_Vendor file at " . $INC{"RT/Action/Generic_Vendor.pm"} if !$@; - eval "require RT::Action::Generic_Local"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Generic_Local.pm}); -warn "RT::Action::Generic has become RT::Action. Please adjust your deprecated RT::Action::Generic_Local file at " . $INC{"RT/Action/Generic_Local.pm"} if !$@; 1; - diff --git a/rt/lib/RT/Action/Notify.pm b/rt/lib/RT/Action/Notify.pm index 30afeefdd..1e4e4c073 100755 --- a/rt/lib/RT/Action/Notify.pm +++ b/rt/lib/RT/Action/Notify.pm @@ -1,73 +1,34 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - -# +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK package RT::Action::Notify; +require RT::Action::SendEmail; use strict; -use warnings; +use vars qw/@ISA/; +@ISA = qw(RT::Action::SendEmail); -use base qw(RT::Action::SendEmail); - -use Email::Address; - -=head2 Prepare - -Set up the relevant recipients, then call our parent. - -=cut - - -sub Prepare { - my $self = shift; - $self->SetRecipients(); - $self->SUPER::Prepare(); -} +# {{{ sub SetRecipients =head2 SetRecipients @@ -79,89 +40,90 @@ Explicitly B<does not> notify the creator of the transaction by default sub SetRecipients { my $self = shift; - my $ticket = $self->TicketObj; - my $arg = $self->Argument; + $arg =~ s/\bAll\b/Owner,Requestor,AdminCc,Cc/; my ( @To, @PseudoTo, @Cc, @Bcc ); - if ( $arg =~ /\bOtherRecipients\b/ ) { - if ( my $attachment = $self->TransactionObj->Attachments->First ) { - push @Cc, map { $_->address } Email::Address->parse( - $attachment->GetHeader('RT-Send-Cc') - ); - push @Bcc, map { $_->address } Email::Address->parse( - $attachment->GetHeader('RT-Send-Bcc') - ); + if ($arg =~ /\bOtherRecipients\b/) { + if ($self->TransactionObj->Attachments->First) { + push (@Cc, $self->TransactionObj->Attachments->First->GetHeader('RT-Send-Cc')); + push (@Bcc, $self->TransactionObj->Attachments->First->GetHeader('RT-Send-Bcc')); } } if ( $arg =~ /\bRequestor\b/ ) { - push @To, $ticket->Requestors->MemberEmailAddresses; + push ( @To, $self->TicketObj->Requestors->MemberEmailAddresses ); } + + if ( $arg =~ /\bCc\b/ ) { #If we have a To, make the Ccs, Ccs, otherwise, promote them to To if (@To) { - push ( @Cc, $ticket->Cc->MemberEmailAddresses ); - push ( @Cc, $ticket->QueueObj->Cc->MemberEmailAddresses ); + push ( @Cc, $self->TicketObj->Cc->MemberEmailAddresses ); + push ( @Cc, $self->TicketObj->QueueObj->Cc->MemberEmailAddresses ); } else { - push ( @Cc, $ticket->Cc->MemberEmailAddresses ); - push ( @To, $ticket->QueueObj->Cc->MemberEmailAddresses ); + push ( @Cc, $self->TicketObj->Cc->MemberEmailAddresses ); + push ( @To, $self->TicketObj->QueueObj->Cc->MemberEmailAddresses ); } } - if ( $arg =~ /\bOwner\b/ && $ticket->OwnerObj->id != $RT::Nobody->id ) { - # If we're not sending to Ccs or requestors, + if ( ( $arg =~ /\bOwner\b/ ) + && ( $self->TicketObj->OwnerObj->id != $RT::Nobody->id ) ) + { + + # If we're not sending to Ccs or requestors, # then the Owner can be the To. if (@To) { - push ( @Bcc, $ticket->OwnerObj->EmailAddress ); + push ( @Bcc, $self->TicketObj->OwnerObj->EmailAddress ); } else { - push ( @To, $ticket->OwnerObj->EmailAddress ); + push ( @To, $self->TicketObj->OwnerObj->EmailAddress ); } } if ( $arg =~ /\bAdminCc\b/ ) { - push ( @Bcc, $ticket->AdminCc->MemberEmailAddresses ); - push ( @Bcc, $ticket->QueueObj->AdminCc->MemberEmailAddresses ); + push ( @Bcc, $self->TicketObj->AdminCc->MemberEmailAddresses ); + push ( @Bcc, $self->TicketObj->QueueObj->AdminCc->MemberEmailAddresses ); } - if ( RT->Config->Get('UseFriendlyToLine') ) { + if ($RT::UseFriendlyToLine) { unless (@To) { - push @PseudoTo, - sprintf RT->Config->Get('FriendlyToLineFormat'), $arg, $ticket->id; + push ( + @PseudoTo, + sprintf($RT::FriendlyToLineFormat, $arg, $self->TicketObj->id), + ); } } - my $creatorObj = $self->TransactionObj->CreatorObj; - my $creator = $creatorObj->EmailAddress(); + my $creator = $self->TransactionObj->CreatorObj->EmailAddress(); #Strip the sender out of the To, Cc and AdminCc and set the # recipients fields used to build the message by the superclass. # unless a flag is set - my $TransactionCurrentUser = RT::CurrentUser->new; - $TransactionCurrentUser->LoadByName($creatorObj->Name); - if (RT->Config->Get('NotifyActor',$TransactionCurrentUser)) { + if ($RT::NotifyActor) { @{ $self->{'To'} } = @To; @{ $self->{'Cc'} } = @Cc; @{ $self->{'Bcc'} } = @Bcc; } else { - @{ $self->{'To'} } = grep ( lc $_ ne lc $creator, @To ); - @{ $self->{'Cc'} } = grep ( lc $_ ne lc $creator, @Cc ); - @{ $self->{'Bcc'} } = grep ( lc $_ ne lc $creator, @Bcc ); + @{ $self->{'To'} } = grep ( !/^$creator$/, @To ); + @{ $self->{'Cc'} } = grep ( !/^$creator$/, @Cc ); + @{ $self->{'Bcc'} } = grep ( !/^$creator$/, @Bcc ); } @{ $self->{'PseudoTo'} } = @PseudoTo; - + return (1); } +# }}} + eval "require RT::Action::Notify_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Notify_Vendor.pm}); eval "require RT::Action::Notify_Local"; diff --git a/rt/lib/RT/Action/NotifyAsComment.pm b/rt/lib/RT/Action/NotifyAsComment.pm index 567aac642..210e4ab15 100755 --- a/rt/lib/RT/Action/NotifyAsComment.pm +++ b/rt/lib/RT/Action/NotifyAsComment.pm @@ -1,73 +1,49 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK package RT::Action::NotifyAsComment; +require RT::Action::Notify; use strict; -use warnings; +use vars qw/@ISA/; +@ISA = qw(RT::Action::Notify); -use base qw(RT::Action::Notify); =head2 SetReturnAddress -Tell SendEmail that this message should come out as a comment. +Tell SendEmail that this message should come out as a comment. Calls SUPER::SetReturnAddress. =cut sub SetReturnAddress { - my $self = shift; - - # Tell RT::Action::SendEmail that this should come - # from the relevant comment email address. - $self->{'comment'} = 1; - - return $self->SUPER::SetReturnAddress( @_, is_comment => 1 ); + my $self = shift; + + # Tell RT::Action::SendEmail that this should come + # from the relevant comment email address. + $self->{'comment'} = 1; + + return($self->SUPER::SetReturnAddress(is_comment => 1)); } eval "require RT::Action::NotifyAsComment_Vendor"; @@ -76,3 +52,4 @@ eval "require RT::Action::NotifyAsComment_Local"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/NotifyAsComment_Local.pm}); 1; + diff --git a/rt/lib/RT/Action/ResolveMembers.pm b/rt/lib/RT/Action/ResolveMembers.pm index 830297301..02ff3a58c 100644 --- a/rt/lib/RT/Action/ResolveMembers.pm +++ b/rt/lib/RT/Action/ResolveMembers.pm @@ -1,58 +1,35 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # This Action will resolve all members of a resolved group ticket package RT::Action::ResolveMembers; -use base 'RT::Action'; +require RT::Action::Generic; require RT::Links; use strict; +use vars qw/@ISA/; +@ISA=qw(RT::Action::Generic); #Do what we need to do and send it out. diff --git a/rt/lib/RT/Action/SendEmail.pm b/rt/lib/RT/Action/SendEmail.pm index 349282230..dac8fc8e7 100755 --- a/rt/lib/RT/Action/SendEmail.pm +++ b/rt/lib/RT/Action/SendEmail.pm @@ -1,65 +1,38 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Portions Copyright 2000 Tobias Brox <tobix@cpan.org> package RT::Action::SendEmail; +require RT::Action::Generic; use strict; -use warnings; +use vars qw/@ISA/; +@ISA = qw(RT::Action::Generic); -use base qw(RT::Action); +use MIME::Words qw(encode_mimeword); use RT::EmailParser; -use RT::Interface::Email; -use Email::Address; -our @EMAIL_RECIPIENT_HEADERS = qw(To Cc Bcc); - =head1 NAME @@ -69,495 +42,273 @@ RT::Action::AutoReply is a good example subclass. =head1 SYNOPSIS - use base 'RT::Action::SendEmail'; + require RT::Action::SendEmail; + @ISA = qw(RT::Action::SendEmail); + =head1 DESCRIPTION Basically, you create another module RT::Action::YourAction which ISA RT::Action::SendEmail. -=head1 METHODS +If you want to set the recipients of the mail to something other than +the addresses mentioned in the To, Cc, Bcc and headers in +the template, you should subclass RT::Action::SendEmail and override +either the SetRecipients method or the SetTo, SetCc, etc methods (see +the comments for the SetRecipients sub). -=head2 CleanSlate -Cleans class-wide options, like L</SquelchMailTo> or L</AttachTickets>. +=begin testing -=cut +ok (require RT::Action::SendEmail); -sub CleanSlate { - my $self = shift; - $self->SquelchMailTo(undef); - $self->AttachTickets(undef); -} +=end testing -=head2 Commit -Sends the prepared message and writes outgoing record into DB if the feature is -activated in the config. +=head1 AUTHOR -=cut +Jesse Vincent <jesse@bestpractical.com> and Tobias Brox <tobix@cpan.org> -sub Commit { - my $self = shift; +=head1 SEE ALSO - $self->DeferDigestRecipients() if RT->Config->Get('RecordOutgoingEmail'); - my $message = $self->TemplateObj->MIMEObj; - - my $orig_message; - if ( RT->Config->Get('RecordOutgoingEmail') - && RT->Config->Get('GnuPG')->{'Enable'} ) - { - - # it's hacky, but we should know if we're going to crypt things - my $attachment = $self->TransactionObj->Attachments->First; - - my %crypt; - foreach my $argument (qw(Sign Encrypt)) { - if ( $attachment - && defined $attachment->GetHeader("X-RT-$argument") ) - { - $crypt{$argument} = $attachment->GetHeader("X-RT-$argument"); - } else { - $crypt{$argument} = $self->TicketObj->QueueObj->$argument(); - } - } - if ( $crypt{'Sign'} || $crypt{'Encrypt'} ) { - $orig_message = $message->dup; - } - } +perl(1). - my ($ret) = $self->SendMessage($message); - if ( $ret > 0 && RT->Config->Get('RecordOutgoingEmail') ) { - if ($orig_message) { - $message->attach( - Type => 'application/x-rt-original-message', - Disposition => 'inline', - Data => $orig_message->as_string, - ); - } - $self->RecordOutgoingMailTransaction($message); - $self->RecordDeferredRecipients(); - } +=cut +# {{{ Scrip methods (_Init, Commit, Prepare, IsApplicable) - return ( abs $ret ); -} +# {{{ sub _Init +# We use _Init from RT::Action +# }}} -=head2 Prepare - -Builds an outgoing email we're going to send using scrip's template. +# {{{ sub Commit +#Do what we need to do and send it out. +sub Commit { + my $self = shift; -=cut + my $MIMEObj = $self->TemplateObj->MIMEObj; + my $msgid = $MIMEObj->head->get('Message-Id'); + chomp $msgid; + $RT::Logger->info($msgid." #".$self->TicketObj->id."/".$self->TransactionObj->id." - Scrip ". $self->ScripObj->id ." ".$self->ScripObj->Description); + #send the email -sub Prepare { - my $self = shift; + # Weed out any RT addresses. We really don't want to talk to ourselves! + @{$self->{'To'}} = RT::EmailParser::CullRTAddresses("", @{$self->{'To'}}); + @{$self->{'Cc'}} = RT::EmailParser::CullRTAddresses("", @{$self->{'Cc'}}); + @{$self->{'Bcc'}} = RT::EmailParser::CullRTAddresses("", @{$self->{'Bcc'}}); + # If there are no recipients, don't try to send the message. + # If the transaction has content and has the header RT-Squelch-Replies-To - my ( $result, $message ) = $self->TemplateObj->Parse( - Argument => $self->Argument, - TicketObj => $self->TicketObj, - TransactionObj => $self->TransactionObj - ); - if ( !$result ) { - return (undef); - } + if ( defined $self->TransactionObj->Attachments->First() ) { - my $MIMEObj = $self->TemplateObj->MIMEObj; + my $squelch = $self->TransactionObj->Attachments->First->GetHeader( 'RT-Squelch-Replies-To'); - # Header - $self->SetRTSpecialHeaders(); + if ($squelch) { + my @blacklist = split ( /,/, $squelch ); - $self->RemoveInappropriateRecipients(); + # Cycle through the people we're sending to and pull out anyone on the + # system blacklist - my %seen; - foreach my $type (@EMAIL_RECIPIENT_HEADERS) { - @{ $self->{$type} } - = grep defined && length && !$seen{ lc $_ }++, - @{ $self->{$type} }; + foreach my $person_to_yank (@blacklist) { + $person_to_yank =~ s/\s//g; + @{ $self->{'To'} } = + grep ( !/^$person_to_yank$/, @{ $self->{'To'} } ); + @{ $self->{'Cc'} } = + grep ( !/^$person_to_yank$/, @{ $self->{'Cc'} } ); + @{ $self->{'Bcc'} } = + grep ( !/^$person_to_yank$/, @{ $self->{'Bcc'} } ); + } + } } # Go add all the Tos, Ccs and Bccs that we need to to the message to # make it happy, but only if we actually have values in those arrays. -# TODO: We should be pulling the recipients out of the template and shove them into To, Cc and Bcc + $self->SetHeader( 'To', join ( ',', @{ $self->{'To'} } ) ) + if ( $self->{'To'} && @{ $self->{'To'} } ); + $self->SetHeader( 'Cc', join ( ',', @{ $self->{'Cc'} } ) ) + if ( $self->{'Cc'} && @{ $self->{'Cc'} } ); + $self->SetHeader( 'Bcc', join ( ',', @{ $self->{'Bcc'} } ) ) + if ( $self->{'Cc'} && @{ $self->{'Bcc'} } ); - for my $header (@EMAIL_RECIPIENT_HEADERS) { - $self->SetHeader( $header, join( ', ', @{ $self->{$header} } ) ) - if (!$MIMEObj->head->get($header) - && $self->{$header} - && @{ $self->{$header} } ); - } - # PseudoTo (fake to headers) shouldn't get matched for message recipients. - # If we don't have any 'To' header (but do have other recipients), drop in - # the pseudo-to header. - $self->SetHeader( 'To', join( ', ', @{ $self->{'PseudoTo'} } ) ) - if $self->{'PseudoTo'} - && @{ $self->{'PseudoTo'} } - && !$MIMEObj->head->get('To') - && ( $MIMEObj->head->get('Cc') or $MIMEObj->head->get('Bcc') ); - - # We should never have to set the MIME-Version header - $self->SetHeader( 'MIME-Version', '1.0' ); - - # fsck.com #5959: Since RT sends 8bit mail, we should say so. - $self->SetHeader( 'Content-Transfer-Encoding', '8bit' ); - - # For security reasons, we only send out textual mails. - foreach my $part ( grep !$_->is_multipart, $MIMEObj->parts_DFS ) { - my $type = $part->mime_type || 'text/plain'; - $type = 'text/plain' unless RT::I18N::IsTextualContentType($type); - $part->head->mime_attr( "Content-Type" => $type ); - # utf-8 here is for _FindOrGuessCharset in I18N.pm - # it's not the final charset/encoding sent - $part->head->mime_attr( "Content-Type.charset" => 'utf-8' ); - } - - RT::I18N::SetMIMEEntityToEncoding( $MIMEObj, - RT->Config->Get('EmailOutputEncoding'), - 'mime_words_ok', ); - - # Build up a MIME::Entity that looks like the original message. - $self->AddAttachments if ( $MIMEObj->head->get('RT-Attach-Message') - && ( $MIMEObj->head->get('RT-Attach-Message') !~ /^(n|no|0|off|false)$/i ) ); - - $self->AddTickets; - - my $attachment = $self->TransactionObj->Attachments->First; - if ($attachment - && !( - $attachment->GetHeader('X-RT-Encrypt') - || $self->TicketObj->QueueObj->Encrypt - ) - ) - { - $attachment->SetHeader( 'X-RT-Encrypt' => 1 ) - if ( $attachment->GetHeader("X-RT-Incoming-Encryption") || '' ) eq - 'Success'; - } + $self->SetHeader('MIME-Version', '1.0'); - return $result; -} + # try to convert message body from utf-8 to $RT::EmailOutputEncoding + $self->SetHeader( 'Content-Type', 'text/plain; charset="utf-8"' ); -=head2 To + RT::I18N::SetMIMEEntityToEncoding( $MIMEObj, $RT::EmailOutputEncoding, 'mime_words_ok' ); + $self->SetHeader( 'Content-Type', 'text/plain; charset="' . $RT::EmailOutputEncoding . '"' ); -Returns an array of L<Email::Address> objects containing all the To: recipients for this notification -=cut + # Build up a MIME::Entity that looks like the original message. -sub To { - my $self = shift; - return ( $self->AddressesFromHeader('To') ); -} + my $do_attach = $self->TemplateObj->MIMEObj->head->get('RT-Attach-Message'); -=head2 Cc + if ($do_attach) { + $self->TemplateObj->MIMEObj->head->delete('RT-Attach-Message'); -Returns an array of L<Email::Address> objects containing all the Cc: recipients for this notification + my $attachments = RT::Attachments->new($RT::SystemUser); + $attachments->Limit( FIELD => 'TransactionId', + VALUE => $self->TransactionObj->Id ); + $attachments->OrderBy('id'); -=cut + my $transaction_content_obj = $self->TransactionObj->ContentObj; -sub Cc { - my $self = shift; - return ( $self->AddressesFromHeader('Cc') ); -} + # attach any of this transaction's attachments + while ( my $attach = $attachments->Next ) { -=head2 Bcc + # Don't attach anything blank + next unless ( $attach->ContentLength ); -Returns an array of L<Email::Address> objects containing all the Bcc: recipients for this notification + # We want to make sure that we don't include the attachment that's being sued as the "Content" of this message" + next + if ( $transaction_content_obj + && $transaction_content_obj->Id == $attach->Id + && $transaction_content_obj->ContentType =~ qr{text/plain}i + ); + $MIMEObj->make_multipart('mixed'); + $MIMEObj->attach( Type => $attach->ContentType, + Charset => $attach->OriginalEncoding, + Data => $attach->OriginalContent, + Filename => $self->MIMEEncodeString( $attach->Filename, $RT::EmailOutputEncoding ), + Encoding => '-SUGGEST'); + } -=cut + } -sub Bcc { - my $self = shift; - return ( $self->AddressesFromHeader('Bcc') ); -} + my $retval = $self->SendMessage($MIMEObj); -sub AddressesFromHeader { - my $self = shift; - my $field = shift; - my $header = $self->TemplateObj->MIMEObj->head->get($field); - my @addresses = Email::Address->parse($header); - return (@addresses); + return ($retval); } -=head2 SendMessage MIMEObj - -sends the message using RT's preferred API. -TODO: Break this out to a separate module - -=cut - -sub SendMessage { - - # DO NOT SHIFT @_ in this subroutine. It breaks Hook::LexWrap's - # ability to pass @_ to a 'post' routine. - my ( $self, $MIMEObj ) = @_; - - my $msgid = $MIMEObj->head->get('Message-ID'); - chomp $msgid; - - $self->ScripActionObj->{_Message_ID}++; +# }}} - $RT::Logger->info( $msgid . " #" - . $self->TicketObj->id . "/" - . $self->TransactionObj->id - . " - Scrip " - . ($self->ScripObj->id || '#rule'). " " - . ( $self->ScripObj->Description || '' ) ); +# {{{ sub Prepare - my $status = RT::Interface::Email::SendEmail( - Entity => $MIMEObj, - Ticket => $self->TicketObj, - Transaction => $self->TransactionObj, - ); +sub Prepare { + my $self = shift; - - return $status unless ($status > 0 || exists $self->{'Deferred'}); + # This actually populates the MIME::Entity fields in the Template Object - my $success = $msgid . " sent "; - foreach (@EMAIL_RECIPIENT_HEADERS) { - my $recipients = $MIMEObj->head->get($_); - $success .= " $_: " . $recipients if $recipients; + unless ( $self->TemplateObj ) { + $RT::Logger->warning("No template object handed to $self\n"); } - if( exists $self->{'Deferred'} ) { - for (qw(daily weekly susp)) { - $success .= "\nBatched email $_ for: ". join(", ", keys %{ $self->{'Deferred'}{ $_ } } ) - if exists $self->{'Deferred'}{ $_ }; - } - } - - $success =~ s/\n//g; - - $RT::Logger->info($success); + unless ( $self->TransactionObj ) { + $RT::Logger->warning("No transaction object handed to $self\n"); - return (1); -} - -=head2 AddAttachments - -Takes any attachments to this transaction and attaches them to the message -we're building. - -=cut - -sub AddAttachments { - my $self = shift; - - my $MIMEObj = $self->TemplateObj->MIMEObj; - - $MIMEObj->head->delete('RT-Attach-Message'); + } - my $attachments = RT::Attachments->new($RT::SystemUser); - $attachments->Limit( - FIELD => 'TransactionId', - VALUE => $self->TransactionObj->Id - ); + unless ( $self->TicketObj ) { + $RT::Logger->warning("No ticket object handed to $self\n"); - # Don't attach anything blank - $attachments->LimitNotEmpty; - $attachments->OrderBy( FIELD => 'id' ); - - # We want to make sure that we don't include the attachment that's - # being used as the "Content" of this message" unless that attachment's - # content type is not like text/... - my $transaction_content_obj = $self->TransactionObj->ContentObj; - - if ( $transaction_content_obj - && $transaction_content_obj->ContentType =~ m{text/}i ) - { - # If this was part of a multipart/alternative, skip all of the kids - my $parent = $transaction_content_obj->ParentObj; - if ($parent and $parent->Id and $parent->ContentType eq "multipart/alternative") { - $attachments->Limit( - ENTRYAGGREGATOR => 'AND', - FIELD => 'parent', - OPERATOR => '!=', - VALUE => $parent->Id, - ); - } else { - $attachments->Limit( - ENTRYAGGREGATOR => 'AND', - FIELD => 'id', - OPERATOR => '!=', - VALUE => $transaction_content_obj->Id, - ); - } } - # attach any of this transaction's attachments - my $seen_attachment = 0; - while ( my $attach = $attachments->Next ) { - if ( !$seen_attachment ) { - $MIMEObj->make_multipart( 'mixed', Force => 1 ); - $seen_attachment = 1; + my ( $result, $message ) = $self->TemplateObj->Parse( + Argument => $self->Argument, + TicketObj => $self->TicketObj, + TransactionObj => $self->TransactionObj + ); + if ($result) { + + # Header + $self->SetSubject(); + $self->SetSubjectToken(); + $self->SetRecipients(); + $self->SetReturnAddress(); + $self->SetRTSpecialHeaders(); + if ($RT::EmailOutputEncoding) { + + # l10n related header + $self->SetHeaderAsEncoding( 'Subject', $RT::EmailOutputEncoding ); } - $self->AddAttachment($attach); } -} - -=head2 AddAttachment $attachment -Takes one attachment object of L<RT::Attachmment> class and attaches it to the message -we're building. - -=cut + return $result; -sub AddAttachment { - my $self = shift; - my $attach = shift; - my $MIMEObj = shift || $self->TemplateObj->MIMEObj; - - $MIMEObj->attach( - Type => $attach->ContentType, - Charset => $attach->OriginalEncoding, - Data => $attach->OriginalContent, - Filename => $self->MIMEEncodeString( $attach->Filename ), - 'RT-Attachment:' => $self->TicketObj->Id . "/" - . $self->TransactionObj->Id . "/" - . $attach->id, - Encoding => '-SUGGEST', - ); } -=head2 AttachTickets [@IDs] +# }}} -Returns or set list of ticket's IDs that should be attached to an outgoing message. +# }}} -B<Note> this method works as a class method and setup things global, so you have to -clean list by passing undef as argument. - -=cut - -{ - my $list = []; - - sub AttachTickets { - my $self = shift; - $list = [ grep defined, @_ ] if @_; - return @$list; - } -} - -=head2 AddTickets +# {{{ SendMessage +=head2 SendMessage MIMEObj -Attaches tickets to the current message, list of tickets' ids get from -L</AttachTickets> method. +sends the message using RT's preferred API. +TODO: Break this out to a seperate module =cut -sub AddTickets { +sub SendMessage { my $self = shift; - $self->AddTicket($_) foreach $self->AttachTickets; - return; -} - -=head2 AddTicket $ID - -Attaches a ticket with ID to the message. + my $MIMEObj = shift; -Each ticket is attached as multipart entity and all its messages and attachments -are attached as sub entities in order of creation, but only if transaction type -is Create or Correspond. + my $msgid = $MIMEObj->head->get('Message-Id'); -=cut -sub AddTicket { - my $self = shift; - my $tid = shift; - - # XXX: we need a current user here, but who is current user? - my $attachs = RT::Attachments->new($RT::SystemUser); - my $txn_alias = $attachs->TransactionAlias; - $attachs->Limit( ALIAS => $txn_alias, FIELD => 'Type', VALUE => 'Create' ); - $attachs->Limit( - ALIAS => $txn_alias, - FIELD => 'Type', - VALUE => 'Correspond' - ); - $attachs->LimitByTicket($tid); - $attachs->LimitNotEmpty; - $attachs->OrderBy( FIELD => 'Created' ); - - my $ticket_mime = MIME::Entity->build( - Type => 'multipart/mixed', - Top => 0, - Description => "ticket #$tid", - ); - while ( my $attachment = $attachs->Next ) { - $self->AddAttachment( $attachment, $ticket_mime ); + #If we don't have any recipients to send to, don't send a message; + unless ( $MIMEObj->head->get('To') + || $MIMEObj->head->get('Cc') + || $MIMEObj->head->get('Bcc') ) { + $RT::Logger->info($msgid. " No recipients found. Not sending.\n"); + return (1); } - if ( $ticket_mime->parts ) { - my $email_mime = $self->TemplateObj->MIMEObj; - $email_mime->make_multipart; - $email_mime->add_part($ticket_mime); - } - return; -} -=head2 RecordOutgoingMailTransaction MIMEObj + # PseudoTo (fake to headers) shouldn't get matched for message recipients. + # If we don't have any 'To' header, drop in the pseudo-to header. -Record a transaction in RT with this outgoing message for future record-keeping purposes - -=cut + $self->SetHeader( 'To', join ( ',', @{ $self->{'PseudoTo'} } ) ) + if ( $self->{'PseudoTo'} && ( @{ $self->{'PseudoTo'} } ) + and ( !$MIMEObj->head->get('To') ) ); + if ( $RT::MailCommand eq 'sendmailpipe' ) { + eval { + open( MAIL, "|$RT::SendmailPath $RT::SendmailArguments" ); + print MAIL $MIMEObj->as_string; + close(MAIL); + }; + if ($@) { + $RT::Logger->crit($msgid. "Could not send mail. -".$@ ); + } + } + else { + my @mailer_args = ($RT::MailCommand); + local $ENV{MAILADDRESS}; -sub RecordOutgoingMailTransaction { - my $self = shift; - my $MIMEObj = shift; + if ( $RT::MailCommand eq 'sendmail' ) { + push @mailer_args, $RT::SendmailArguments; + } + elsif ( $RT::MailCommand eq 'smtp' ) { + $ENV{MAILADDRESS} = $RT::SMTPFrom || $MIMEObj->head->get('From'); + push @mailer_args, (Server => $RT::SMTPServer); + push @mailer_args, (Debug => $RT::SMTPDebug); + } + else { + push @mailer_args, $RT::MailParams; + } - my @parts = $MIMEObj->parts; - my @attachments; - my @keep; - foreach my $part (@parts) { - my $attach = $part->head->get('RT-Attachment'); - if ($attach) { - $RT::Logger->debug( - "We found an attachment. we want to not record it."); - push @attachments, $attach; - } else { - $RT::Logger->debug("We found a part. we want to record it."); - push @keep, $part; + unless ( $MIMEObj->send( @mailer_args ) ) { + $RT::Logger->crit($msgid. "Could not send mail." ); + return (0); } } - $MIMEObj->parts( \@keep ); - foreach my $attachment (@attachments) { - $MIMEObj->head->add( 'RT-Attachment', $attachment ); - } - RT::I18N::SetMIMEEntityToEncoding( $MIMEObj, 'utf-8', 'mime_words_ok' ); - my $transaction - = RT::Transaction->new( $self->TransactionObj->CurrentUser ); - -# XXX: TODO -> Record attachments as references to things in the attachments table, maybe. + my $success = ($msgid. " sent To: ".$MIMEObj->head->get('To') . " Cc: ".$MIMEObj->head->get('Cc') . " Bcc: ".$MIMEObj->head->get('Bcc')); + $success =~ s/\n//gi; + $RT::Logger->info($success); - my $type; - if ( $self->TransactionObj->Type eq 'Comment' ) { - $type = 'CommentEmailRecord'; - } else { - $type = 'EmailRecord'; - } + return (1); +} - my $msgid = $MIMEObj->head->get('Message-ID'); - chomp $msgid; +# }}} - my ( $id, $msg ) = $transaction->Create( - Ticket => $self->TicketObj->Id, - Type => $type, - Data => $msgid, - MIMEObj => $MIMEObj, - ActivateScrips => 0 - ); +# {{{ Deal with message headers (Set* subs, designed for easy overriding) - if ($id) { - $self->{'OutgoingMailTransaction'} = $id; - } else { - $RT::Logger->warning( - "Could not record outgoing message transaction: $msg"); - } - return $id; -} +# {{{ sub SetRTSpecialHeaders =head2 SetRTSpecialHeaders @@ -569,272 +320,85 @@ that don't matter much to anybody else. sub SetRTSpecialHeaders { my $self = shift; - $self->SetSubject(); - $self->SetSubjectToken(); - $self->SetHeaderAsEncoding( 'Subject', - RT->Config->Get('EmailOutputEncoding') ) - if ( RT->Config->Get('EmailOutputEncoding') ); - $self->SetReturnAddress(); - $self->SetReferencesHeaders(); - - unless ( $self->TemplateObj->MIMEObj->head->get('Message-ID') ) { - - # Get Message-ID for this txn - my $msgid = ""; - if ( my $msg = $self->TransactionObj->Message->First ) { - $msgid = $msg->GetHeader("RT-Message-ID") - || $msg->GetHeader("Message-ID"); - } + $self->SetReferences(); - # If there is one, and we can parse it, then base our Message-ID on it - if ( $msgid - and $msgid - =~ s/<(rt-.*?-\d+-\d+)\.(\d+)-\d+-\d+\@\QRT->Config->Get('Organization')\E>$/ - "<$1." . $self->TicketObj->id - . "-" . $self->ScripObj->id - . "-" . $self->ScripActionObj->{_Message_ID} - . "@" . RT->Config->Get('Organization') . ">"/eg - and $2 == $self->TicketObj->id - ) - { - $self->SetHeader( "Message-ID" => $msgid ); - } else { - $self->SetHeader( - 'Message-ID' => RT::Interface::Email::GenMessageId( - Ticket => $self->TicketObj, - Scrip => $self->ScripObj, - ScripAction => $self->ScripActionObj - ), - ); - } - } + $self->SetMessageID(); - if (my $precedence = RT->Config->Get('DefaultMailPrecedence') - and !$self->TemplateObj->MIMEObj->head->get("Precedence") - ) { - $self->SetHeader( 'Precedence', $precedence ); - } + $self->SetPrecedence(); - $self->SetHeader( 'X-RT-Loop-Prevention', RT->Config->Get('rtname') ); + $self->SetHeader( 'X-RT-Loop-Prevention', $RT::rtname ); $self->SetHeader( 'RT-Ticket', - RT->Config->Get('rtname') . " #" . $self->TicketObj->id() ); + $RT::rtname . " #" . $self->TicketObj->id() ); $self->SetHeader( 'Managed-by', - "RT $RT::VERSION (http://www.bestpractical.com/rt/)" ); - -# XXX, TODO: use /ShowUser/ShowUserEntry(or something like that) when it would be -# refactored into user's method. - if ( my $email = $self->TransactionObj->CreatorObj->EmailAddress - and RT->Config->Get('UseOriginatorHeader') - ) { - $self->SetHeader( 'RT-Originator', $email ); - } + "RT $RT::VERSION (http://www.bestpractical.com/rt/)" ); -} + $self->SetHeader( 'RT-Originator', + $self->TransactionObj->CreatorObj->EmailAddress ); + return (); +} -sub DeferDigestRecipients { - my $self = shift; - $RT::Logger->debug( "Calling SetRecipientDigests for transaction " . $self->TransactionObj . ", id " . $self->TransactionObj->id ); - - # The digest attribute will be an array of notifications that need to - # be sent for this transaction. The array will have the following - # format for its objects. - # $digest_hash -> {daily|weekly|susp} -> address -> {To|Cc|Bcc} - # -> sent -> {true|false} - # The "sent" flag will be used by the cron job to indicate that it has - # run on this transaction. - # In a perfect world we might move this hash construction to the - # extension module itself. - my $digest_hash = {}; - - foreach my $mailfield (@EMAIL_RECIPIENT_HEADERS) { - # If we have a "PseudoTo", the "To" contains it, so we don't need to access it - next if ( ( $self->{'PseudoTo'} && @{ $self->{'PseudoTo'} } ) && ( $mailfield eq 'To' ) ); - $RT::Logger->debug( "Working on mailfield $mailfield; recipients are " . join( ',', @{ $self->{$mailfield} } ) ); - - # Store the 'daily digest' folk in an array. - my ( @send_now, @daily_digest, @weekly_digest, @suspended ); - - # Have to get the list of addresses directly from the MIME header - # at this point. - $RT::Logger->debug( $self->TemplateObj->MIMEObj->head->as_string ); - foreach my $rcpt ( map { $_->address } $self->AddressesFromHeader($mailfield) ) { - next unless $rcpt; - my $user_obj = RT::User->new($RT::SystemUser); - $user_obj->LoadByEmail($rcpt); - if ( ! $user_obj->id ) { - # If there's an email address in here without an associated - # RT user, pass it on through. - $RT::Logger->debug( "User $rcpt is not associated with an RT user object. Send mail."); - push( @send_now, $rcpt ); - next; - } - - my $mailpref = RT->Config->Get( 'EmailFrequency', $user_obj ) || ''; - $RT::Logger->debug( "Got user mail preference '$mailpref' for user $rcpt"); - - if ( $mailpref =~ /daily/i ) { push( @daily_digest, $rcpt ) } - elsif ( $mailpref =~ /weekly/i ) { push( @weekly_digest, $rcpt ) } - elsif ( $mailpref =~ /suspend/i ) { push( @suspended, $rcpt ) } - else { push( @send_now, $rcpt ) } - } - - # Reset the relevant mail field. - $RT::Logger->debug( "Removing deferred recipients from $mailfield: line"); - if (@send_now) { - $self->SetHeader( $mailfield, join( ', ', @send_now ) ); - } else { # No recipients! Remove the header. - $self->TemplateObj->MIMEObj->head->delete($mailfield); - } - - # Push the deferred addresses into the appropriate field in - # our attribute hash, with the appropriate mail header. - $RT::Logger->debug( - "Setting deferred recipients for attribute creation"); - $digest_hash->{'daily'}->{$_} = {'header' => $mailfield , _sent => 0} for (@daily_digest); - $digest_hash->{'weekly'}->{$_} ={'header' => $mailfield, _sent => 0} for (@weekly_digest); - $digest_hash->{'susp'}->{$_} = {'header' => $mailfield, _sent =>0 } for (@suspended); - } - - if ( scalar keys %$digest_hash ) { +# {{{ sub SetReferences - # Save the hash so that we can add it as an attribute to the - # outgoing email transaction. - $self->{'Deferred'} = $digest_hash; - } else { - $RT::Logger->debug( "No recipients found for deferred delivery on " - . "transaction #" - . $self->TransactionObj->id ); - } -} +=head2 SetReferences + + # This routine will set the References: and In-Reply-To headers, +# autopopulating it with all the correspondence on this ticket so +# far. This should make RT responses threadable. +=cut - -sub RecordDeferredRecipients { +sub SetReferences { my $self = shift; - return unless exists $self->{'Deferred'}; - my $txn_id = $self->{'OutgoingMailTransaction'}; - return unless $txn_id; + # TODO: this one is broken. What is this email really a reply to? + # If it's a reply to an incoming message, we'll need to use the + # actual message-id from the appropriate Attachment object. For + # incoming mails, we would like to preserve the In-Reply-To and/or + # References. - my $txn_obj = RT::Transaction->new( $self->CurrentUser ); - $txn_obj->Load( $txn_id ); - my( $ret, $msg ) = $txn_obj->AddAttribute( - Name => 'DeferredRecipients', - Content => $self->{'Deferred'} - ); - $RT::Logger->warning( "Unable to add deferred recipients to outgoing transaction: $msg" ) - unless $ret; + $self->SetHeader( 'In-Reply-To', + "<rt-" . $self->TicketObj->id() . "\@" . $RT::rtname . ">" ); - return ($ret,$msg); + # TODO We should always add References headers for all message-ids + # of previous messages related to this ticket. } -=head2 SquelchMailTo [@ADDRESSES] - -Mark ADDRESSES to be removed from list of the recipients. Returns list of the addresses. -To empty list pass undefined argument. +# }}} -B<Note> that this method can be called as class method and works globaly. Don't forget to -clean this list when blocking is not required anymore, pass undef to do this. +# {{{ sub SetMessageID -=cut - -{ - my $squelch = []; - - sub SquelchMailTo { - my $self = shift; - if (@_) { - $squelch = [ grep defined, @_ ]; - } - return @$squelch; - } -} +=head2 SetMessageID -=head2 RemoveInappropriateRecipients - -Remove addresses that are RT addresses or that are on this transaction's blacklist +Without this one, threading won't work very nice in email agents. +Anyway, I'm not really sure it's that healthy if we need to send +several separate/different emails about the same transaction. =cut -sub RemoveInappropriateRecipients { +sub SetMessageID { my $self = shift; - my @blacklist = (); - - # If there are no recipients, don't try to send the message. - # If the transaction has content and has the header RT-Squelch-Replies-To - - my $msgid = $self->TemplateObj->MIMEObj->head->get('Message-Id'); - if ( my $attachment = $self->TransactionObj->Attachments->First ) { - - if ( $attachment->GetHeader('RT-DetectedAutoGenerated') ) { - - # What do we want to do with this? It's probably (?) a bounce - # caused by one of the watcher addresses being broken. - # Default ("true") is to redistribute, for historical reasons. - - if ( !RT->Config->Get('RedistributeAutoGeneratedMessages') ) { - - # Don't send to any watchers. - @{ $self->{$_} } = () for (@EMAIL_RECIPIENT_HEADERS); - $RT::Logger->info( $msgid - . " The incoming message was autogenerated. " - . "Not redistributing this message based on site configuration." - ); - } elsif ( RT->Config->Get('RedistributeAutoGeneratedMessages') eq - 'privileged' ) - { - - # Only send to "privileged" watchers. - foreach my $type (@EMAIL_RECIPIENT_HEADERS) { - foreach my $addr ( @{ $self->{$type} } ) { - my $user = RT::User->new($RT::SystemUser); - $user->LoadByEmail($addr); - push @blacklist, $addr if ( !$user->Privileged ); - } - } - $RT::Logger->info( $msgid - . " The incoming message was autogenerated. " - . "Not redistributing this message to unprivileged users based on site configuration." - ); - } - } - - if ( my $squelch = $attachment->GetHeader('RT-Squelch-Replies-To') ) { - push @blacklist, split( /,/, $squelch ); - } - } - -# Let's grab the SquelchMailTo attribue and push those entries into the @blacklist - push @blacklist, map $_->Content, $self->TicketObj->SquelchMailTo; - push @blacklist, $self->SquelchMailTo; - - # Cycle through the people we're sending to and pull out anyone on the - # system blacklist + # TODO this one might be sort of broken. If we have several scrips +++ + # sending several emails to several different persons, we need to + # pull out different message-ids. I'd suggest message ids like + # "rt-ticket#-transaction#-scrip#-receipient#" + + $self->SetHeader( 'Message-ID', + "<rt-" + . $RT::VERSION ."-" + . $self->TicketObj->id() . "-" + . $self->TransactionObj->id() . "." + . rand(20) . "\@" + . $RT::Organization . ">" ) + unless $self->TemplateObj->MIMEObj->head->get('Message-ID'); +} - # Trim leading and trailing spaces. - @blacklist = map { RT::User->CanonicalizeEmailAddress( $_->address ) } Email::Address->parse(join(', ', grep {defined} @blacklist)); +# }}} - foreach my $type (@EMAIL_RECIPIENT_HEADERS) { - my @addrs; - foreach my $addr ( @{ $self->{$type} } ) { +# }}} - # Weed out any RT addresses. We really don't want to talk to ourselves! - # If we get a reply back, that means it's not an RT address - if ( !RT::EmailParser->CullRTAddresses($addr) ) { - $RT::Logger->info( $msgid . "$addr appears to point to this RT instance. Skipping" ); - next; - } - if ( grep /^\Q$addr\E$/, @blacklist ) { - $RT::Logger->info( $msgid . "$addr was blacklisted for outbound mail on this transaction. Skipping"); - next; - } - push @addrs, $addr; - } - @{ $self->{$type} } = @addrs; - } -} +# {{{ sub SetReturnAddress =head2 SetReturnAddress is_comment => BOOLEAN @@ -845,11 +409,8 @@ Calculate and set From and Reply-To headers based on the is_comment flag. sub SetReturnAddress { my $self = shift; - my %args = ( - is_comment => 0, - friendly_name => undef, - @_ - ); + my %args = ( is_comment => 0, + @_ ); # From and Reply-To # $args{is_comment} should be set if the comment address is to be used. @@ -857,37 +418,29 @@ sub SetReturnAddress { if ( $args{'is_comment'} ) { $replyto = $self->TicketObj->QueueObj->CommentAddress - || RT->Config->Get('CommentAddress'); - } else { + || $RT::CommentAddress; + } + else { $replyto = $self->TicketObj->QueueObj->CorrespondAddress - || RT->Config->Get('CorrespondAddress'); + || $RT::CorrespondAddress; } unless ( $self->TemplateObj->MIMEObj->head->get('From') ) { - if ( RT->Config->Get('UseFriendlyFromLine') ) { - my $friendly_name = $args{friendly_name}; - - unless ( $friendly_name ) { - $friendly_name = $self->TransactionObj->CreatorObj->FriendlyName; - if ( $friendly_name =~ /^"(.*)"$/ ) { # a quoted string - $friendly_name = $1; - } - } - - $friendly_name =~ s/"/\\"/g; - $self->SetHeader( - 'From', - sprintf( - RT->Config->Get('FriendlyFromLineFormat'), - $self->MIMEEncodeString( - $friendly_name, RT->Config->Get('EmailOutputEncoding') - ), - $replyto - ), - ); - } else { - $self->SetHeader( 'From', $replyto ); - } + if ($RT::UseFriendlyFromLine) { + my $friendly_name = $self->TransactionObj->CreatorObj->RealName; + if ( $friendly_name =~ /^"(.*)"$/ ) { # a quoted string + $friendly_name = $1; + } + + $friendly_name =~ s/"/\\"/g; + $self->SetHeader( 'From', + sprintf($RT::FriendlyFromLineFormat, + $self->MIMEEncodeString( $friendly_name, $RT::EmailOutputEncoding ), $replyto), + ); + } + else { + $self->SetHeader( 'From', $replyto ); + } } unless ( $self->TemplateObj->MIMEObj->head->get('Reply-To') ) { @@ -896,6 +449,10 @@ sub SetReturnAddress { } +# }}} + +# {{{ sub SetHeader + =head2 SetHeader FIELD, VALUE Set the FIELD of the current MIME object into VALUE. @@ -909,151 +466,163 @@ sub SetHeader { chomp $val; chomp $field; - my $head = $self->TemplateObj->MIMEObj->head; - $head->fold_length( $field, 10000 ); - $head->replace( $field, $val ); - return $head->get($field); + $self->TemplateObj->MIMEObj->head->fold_length( $field, 10000 ); + $self->TemplateObj->MIMEObj->head->replace( $field, $val ); + return $self->TemplateObj->MIMEObj->head->get($field); } -=head2 SetSubject +# }}} -This routine sets the subject. it does not add the rt tag. That gets done elsewhere -If subject is already defined via template, it uses that. otherwise, it tries to get -the transaction's subject. +# {{{ sub SetRecipients -=cut +=head2 SetRecipients -sub SetSubject { +Dummy method to be overriden by subclasses which want to set the recipients. + +=cut + +sub SetRecipients { my $self = shift; - my $subject; + return (); +} - if ( $self->TemplateObj->MIMEObj->head->get('Subject') ) { - return (); - } +# }}} - my $message = $self->TransactionObj->Attachments; - $message->RowsPerPage(1); - if ( $self->{'Subject'} ) { - $subject = $self->{'Subject'}; - } elsif ( my $first = $message->First ) { - my $tmp = $first->GetHeader('Subject'); - $subject = defined $tmp ? $tmp : $self->TicketObj->Subject; - } else { - $subject = $self->TicketObj->Subject; - } - $subject = '' unless defined $subject; - chomp $subject; +# {{{ sub SetTo - $subject =~ s/(\r\n|\n|\s)/ /g; +=head2 SetTo - $self->SetHeader( 'Subject', $subject ); +Takes a string that is the addresses you want to send mail to +=cut + +sub SetTo { + my $self = shift; + my $addresses = shift; + return $self->SetHeader( 'To', $addresses ); } -=head2 SetSubjectToken +# }}} -This routine fixes the RT tag in the subject. It's unlikely that you want to overwrite this. +# {{{ sub SetCc + +=head2 SetCc + +Takes a string that is the addresses you want to Cc =cut -sub SetSubjectToken { - my $self = shift; +sub SetCc { + my $self = shift; + my $addresses = shift; - my $head = $self->TemplateObj->MIMEObj->head; - $head->replace( - Subject => RT::Interface::Email::AddSubjectTag( - Encode::decode_utf8( $head->get('Subject') ), - $self->TicketObj, - ), - ); + return $self->SetHeader( 'Cc', $addresses ); } -=head2 SetReferencesHeaders +# }}} + +# {{{ sub SetBcc + +=head2 SetBcc -Set References and In-Reply-To headers for this message. +Takes a string that is the addresses you want to Bcc =cut -sub SetReferencesHeaders { +sub SetBcc { + my $self = shift; + my $addresses = shift; + + return $self->SetHeader( 'Bcc', $addresses ); +} + +# }}} + +# {{{ sub SetPrecedence + +sub SetPrecedence { my $self = shift; - my ( @in_reply_to, @references, @msgid ); - - if ( my $top = $self->TransactionObj->Message->First ) { - @in_reply_to = split( /\s+/m, $top->GetHeader('In-Reply-To') || '' ); - @references = split( /\s+/m, $top->GetHeader('References') || '' ); - @msgid = split( /\s+/m, $top->GetHeader('Message-ID') || '' ); - } else { - return (undef); + + unless ( $self->TemplateObj->MIMEObj->head->get("Precedence") ) { + $self->SetHeader( 'Precedence', "bulk" ); } +} - # There are two main cases -- this transaction was created with - # the RT Web UI, and hence we want to *not* append its Message-ID - # to the References and In-Reply-To. OR it came from an outside - # source, and we should treat it as per the RFC - my $org = RT->Config->Get('Organization'); - if ( "@msgid" =~ /<(rt-.*?-\d+-\d+)\.(\d+)-0-0\@\Q$org\E>/ ) { - - # Make all references which are internal be to version which we - # have sent out - - for ( @references, @in_reply_to ) { - s/<(rt-.*?-\d+-\d+)\.(\d+-0-0)\@\Q$org\E>$/ - "<$1." . $self->TicketObj->id . - "-" . $self->ScripObj->id . - "-" . $self->ScripActionObj->{_Message_ID} . - "@" . $org . ">"/eg - } +# }}} - # In reply to whatever the internal message was in reply to - $self->SetHeader( 'In-Reply-To', join( " ", (@in_reply_to) ) ); +# {{{ sub SetSubject - # Default the references to whatever we're in reply to - @references = @in_reply_to unless @references; +=head2 SetSubject - # References are unchanged from internal - } else { +This routine sets the subject. it does not add the rt tag. that gets done elsewhere +If $self->{'Subject'} is already defined, it uses that. otherwise, it tries to get +the transaction's subject. - # In reply to that message - $self->SetHeader( 'In-Reply-To', join( " ", (@msgid) ) ); +=cut - # Default the references to whatever we're in reply to - @references = @in_reply_to unless @references; +sub SetSubject { + my $self = shift; + my $subject; - # Push that message onto the end of the references - push @references, @msgid; - } + unless ( $self->TemplateObj->MIMEObj->head->get('Subject') ) { + my $message = $self->TransactionObj->Attachments; + my $ticket = $self->TicketObj->Id; + + if ( $self->{'Subject'} ) { + $subject = $self->{'Subject'}; + } + elsif ( ( $message->First() ) + && ( $message->First->Headers ) ) { + my $header = $message->First->Headers(); + $header =~ s/\n\s+/ /g; + if ( $header =~ /^Subject: (.*?)$/m ) { + $subject = $1; + } + else { + $subject = $self->TicketObj->Subject(); + } - # Push pseudo-ref to the front - my $pseudo_ref = $self->PseudoReference; - @references = ( $pseudo_ref, grep { $_ ne $pseudo_ref } @references ); + } + else { + $subject = $self->TicketObj->Subject(); + } - # If there are more than 10 references headers, remove all but the - # first four and the last six (Gotta keep this from growing - # forever) - splice( @references, 4, -6 ) if ( $#references >= 10 ); + $subject =~ s/(\r\n|\n|\s)/ /gi; - # Add on the references - $self->SetHeader( 'References', join( " ", @references ) ); - $self->TemplateObj->MIMEObj->head->fold_length( 'References', 80 ); + chomp $subject; + $self->SetHeader( 'Subject', $subject ); + } + return ($subject); } -=head2 PseudoReference +# }}} -Returns a fake Message-ID: header for the ticket to allow a base level of threading +# {{{ sub SetSubjectToken -=cut +=head2 SetSubjectToken + +This routine fixes the RT tag in the subject. It's unlikely that you want to overwrite this. -sub PseudoReference { +=cut +sub SetSubjectToken { my $self = shift; - my $pseudo_ref - = '<RT-Ticket-' - . $self->TicketObj->id . '@' - . RT->Config->Get('Organization') . '>'; - return $pseudo_ref; + my $tag = "[$RT::rtname #" . $self->TicketObj->id . "]"; + my $sub = $self->TemplateObj->MIMEObj->head->get('Subject'); + unless ( $sub =~ /\Q$tag\E/ ) { + $sub =~ s/(\r\n|\n|\s)/ /gi; + chomp $sub; + $self->TemplateObj->MIMEObj->head->replace( 'Subject', "$tag $sub" ); + } } +# }}} + +# }}} + +# {{{ + =head2 SetHeaderAsEncoding($field_name, $charset_encoding) This routine converts the field into specified charset encoding. @@ -1064,37 +633,53 @@ sub SetHeaderAsEncoding { my $self = shift; my ( $field, $enc ) = ( shift, shift ); - my $head = $self->TemplateObj->MIMEObj->head; - - if ( lc($field) eq 'from' and RT->Config->Get('SMTPFrom') ) { - $head->replace( $field, RT->Config->Get('SMTPFrom') ); - return; + if ($field eq 'From' and $RT::SMTPFrom) { + $self->TemplateObj->MIMEObj->head->replace( $field, $RT::SMTPFrom ); + return; } - my $value = $head->get( $field ); - $value = $self->MIMEEncodeString( $value, $enc ); - $head->replace( $field, $value ); + my $value = $self->TemplateObj->MIMEObj->head->get($field); -} + # don't bother if it's us-ascii + + # See RT::I18N, 'NOTES: Why Encode::_utf8_off before Encode::from_to' -=head2 MIMEEncodeString + $value = $self->MIMEEncodeString($value, $enc); -Takes a perl string and optional encoding pass it over -L<RT::Interface::Email/EncodeToMIME>. + $self->TemplateObj->MIMEObj->head->replace( $field, $value ); -Basicly encode a string using B encoding according to RFC2047. + +} +# }}} + +# {{{ MIMENcodeString + +=head2 MIMEEncodeString STRING ENCODING + +Takes a string and a possible encoding and returns the string wrapped in MIME goo. =cut sub MIMEEncodeString { - my $self = shift; - return RT::Interface::Email::EncodeToMIME( String => $_[0], Charset => $_[1] ); + my $self = shift; + my $value = shift; + my $enc = shift; + + chomp $value; + return ($value) unless $value =~ /[^\x20-\x7e]/; + + $value =~ s/\s*$//; + Encode::_utf8_off($value); + my $res = Encode::from_to( $value, "utf-8", $enc ); + $value = encode_mimeword( $value, 'B', $enc ); } +# }}} + eval "require RT::Action::SendEmail_Vendor"; -die $@ if ( $@ && $@ !~ qr{^Can't locate RT/Action/SendEmail_Vendor.pm} ); +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/SendEmail_Vendor.pm}); eval "require RT::Action::SendEmail_Local"; -die $@ if ( $@ && $@ !~ qr{^Can't locate RT/Action/SendEmail_Local.pm} ); +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/SendEmail_Local.pm}); 1; diff --git a/rt/lib/RT/Action/SetPriority_Local.pm b/rt/lib/RT/Action/SetPriority_Local.pm new file mode 100644 index 000000000..efaadc961 --- /dev/null +++ b/rt/lib/RT/Action/SetPriority_Local.pm @@ -0,0 +1,47 @@ +package RT::Action::SetPriority; +use strict; +no warnings 'redefine'; + +# Extension to allow relative priority changes: +# if Argument is "R" followed by a value, it's +# relative to current priority. +sub Commit { + my $self = shift; + my ($rel, $val); + my $arg = $self->Argument; + if ( $arg ) { + ($rel, $val) = ( $arg =~ /^(r?)(-?\d+)$/i ); + if (!length($val)) { + warn "Bad argument to SetPriority: '$arg'\n"; + return 0; + } + } + else { + my %Rules = $self->Rules; + $rel = length($Rules{'inc'}) ? 1 : 0; + $val = $Rules{'inc'} || $Rules{'set'}; + if ($val !~ /^[+-]?\d+$/) { + warn "Bad argument to SetPriority: '$val'\n"; + return 0; + } + } + $val += $self->TicketObj->Priority if $rel; + $self->TicketObj->SetPriority($val); +} + +sub Options { + ( + { + 'name' => 'set', + 'label' => 'Set to value', + 'type' => 'text', + }, + { + 'name' => 'inc', + 'label' => 'Increment by', + 'type' => 'text', + }, + ) +} + +1; diff --git a/rt/lib/RT/Attachment.pm b/rt/lib/RT/Attachment.pm index 6f6bb2677..2ed520162 100755 --- a/rt/lib/RT/Attachment.pm +++ b/rt/lib/RT/Attachment.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -86,7 +61,7 @@ sub _Init { -=head2 Create PARAMHASH +=item Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -135,7 +110,7 @@ sub Create { -=head2 id +=item id Returns the current value of id. (In the database, id is stored as int(11).) @@ -144,14 +119,14 @@ Returns the current value of id. =cut -=head2 TransactionId +=item TransactionId Returns the current value of TransactionId. (In the database, TransactionId is stored as int(11).) -=head2 SetTransactionId VALUE +=item SetTransactionId VALUE Set TransactionId to VALUE. @@ -162,14 +137,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Parent +=item Parent Returns the current value of Parent. (In the database, Parent is stored as int(11).) -=head2 SetParent VALUE +=item SetParent VALUE Set Parent to VALUE. @@ -180,14 +155,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 MessageId +=item MessageId Returns the current value of MessageId. (In the database, MessageId is stored as varchar(160).) -=head2 SetMessageId VALUE +=item SetMessageId VALUE Set MessageId to VALUE. @@ -198,14 +173,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Subject +=item Subject Returns the current value of Subject. (In the database, Subject is stored as varchar(255).) -=head2 SetSubject VALUE +=item SetSubject VALUE Set Subject to VALUE. @@ -216,14 +191,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Filename +=item Filename Returns the current value of Filename. (In the database, Filename is stored as varchar(255).) -=head2 SetFilename VALUE +=item SetFilename VALUE Set Filename to VALUE. @@ -234,14 +209,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ContentType +=item ContentType Returns the current value of ContentType. (In the database, ContentType is stored as varchar(80).) -=head2 SetContentType VALUE +=item SetContentType VALUE Set ContentType to VALUE. @@ -252,14 +227,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ContentEncoding +=item ContentEncoding Returns the current value of ContentEncoding. (In the database, ContentEncoding is stored as varchar(80).) -=head2 SetContentEncoding VALUE +=item SetContentEncoding VALUE Set ContentEncoding to VALUE. @@ -270,14 +245,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Content +=item Content Returns the current value of Content. (In the database, Content is stored as longtext.) -=head2 SetContent VALUE +=item SetContent VALUE Set Content to VALUE. @@ -288,14 +263,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Headers +=item Headers Returns the current value of Headers. (In the database, Headers is stored as longtext.) -=head2 SetHeaders VALUE +=item SetHeaders VALUE Set Headers to VALUE. @@ -306,7 +281,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Creator +=item Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -315,7 +290,7 @@ Returns the current value of Creator. =cut -=head2 Created +=item Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -325,33 +300,33 @@ Returns the current value of Created. -sub _CoreAccessible { +sub _ClassAccessible { { id => - {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, type => 'int(11)', default => ''}, TransactionId => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Parent => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, MessageId => - {read => 1, write => 1, sql_type => 12, length => 160, is_blob => 0, is_numeric => 0, type => 'varchar(160)', default => ''}, + {read => 1, write => 1, type => 'varchar(160)', default => ''}, Subject => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, type => 'varchar(255)', default => ''}, Filename => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, type => 'varchar(255)', default => ''}, ContentType => - {read => 1, write => 1, sql_type => 12, length => 80, is_blob => 0, is_numeric => 0, type => 'varchar(80)', default => ''}, + {read => 1, write => 1, type => 'varchar(80)', default => ''}, ContentEncoding => - {read => 1, write => 1, sql_type => 12, length => 80, is_blob => 0, is_numeric => 0, type => 'varchar(80)', default => ''}, + {read => 1, write => 1, type => 'varchar(80)', default => ''}, Content => - {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'longtext', default => ''}, + {read => 1, write => 1, type => 'longtext', default => ''}, Headers => - {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'longtext', default => ''}, + {read => 1, write => 1, type => 'longtext', default => ''}, Creator => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, } }; @@ -383,7 +358,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Attachments.pm b/rt/lib/RT/Attachments.pm index 93c9445f6..177cdd094 100755 --- a/rt/lib/RT/Attachments.pm +++ b/rt/lib/RT/Attachments.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -89,7 +64,7 @@ sub _Init { } -=head2 NewItem +=item NewItem Returns an empty new RT::Attachment item @@ -126,7 +101,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Condition.pm b/rt/lib/RT/Condition.pm index e04fd6454..dfd58e757 100755 --- a/rt/lib/RT/Condition.pm +++ b/rt/lib/RT/Condition.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} =head1 NAME @@ -210,6 +210,19 @@ sub IsApplicable { } # }}} +sub Options { + my $self = shift; + return(); +} + +sub Rules { + my $self = shift; + return () if !$self->ScripObj or !$self->ScripObj->ConditionRules; + # By default, option names and values are on consecutive lines. + # Override this if you need anything more interesting. + return(split "\n", $self->ScripObj->ConditionRules); +} + # {{{ sub DESTROY sub DESTROY { my $self = shift; diff --git a/rt/lib/RT/Condition/AnyTransaction.pm b/rt/lib/RT/Condition/AnyTransaction.pm index 330862262..4519fcf5a 100644 --- a/rt/lib/RT/Condition/AnyTransaction.pm +++ b/rt/lib/RT/Condition/AnyTransaction.pm @@ -1,55 +1,34 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK + package RT::Condition::AnyTransaction; -use base 'RT::Condition'; +require RT::Condition::Generic; use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Condition::Generic); =head2 IsApplicable diff --git a/rt/lib/RT/Condition/CustomFieldChange.pm b/rt/lib/RT/Condition/CustomFieldChange.pm new file mode 100644 index 000000000..b9228a50f --- /dev/null +++ b/rt/lib/RT/Condition/CustomFieldChange.pm @@ -0,0 +1,56 @@ +package RT::Condition::CustomFieldChange; +use base 'RT::Condition'; +use strict; + +=head2 IsApplicable + +If a custom field has a particular value. + +=cut + +# Based on Chuck Boeheim's code posted on the RT Wiki 3/13/06 + +sub IsApplicable { + my $self = shift; + my $trans = $self->TransactionObj; + my $scrip = $self->ScripObj; + my %Rules = $self->Rules; + my ($field, $value) = @Rules{'field', 'value'}; + return if !defined($field) or !defined($value); + + if ($trans->Type eq 'Create') { + return 1 if $trans->TicketObj->FirstCustomFieldValue($field) eq $value; + } + if ($trans->Type eq 'CustomField') { + my $cf = RT::CustomField->new($self->CurrentUser); + $cf->Load($field); + return 1 if $trans->Field == $cf->Id and $trans->NewValue eq $value; + } + return undef; +} + +sub Options { + my $self = shift; + my %args = ( 'QueueObj' => undef, @_ ); + my $QueueObj = $args{'QueueObj'}; + my $cfs = $QueueObj->TicketCustomFields(); + my @fieldnames; + while ( my $cf = $cfs->Next ) { + push @fieldnames, $cf->Name, $cf->Name; + } + return ( + { + 'name' => 'field', + 'label' => 'Custom Field', + 'type' => 'select', + 'options' => \@fieldnames, + }, + { + 'name' => 'value', + 'label' => 'Value', + 'type' => 'text', + }, + ); +} +1; + diff --git a/rt/lib/RT/Condition/Generic.pm b/rt/lib/RT/Condition/Generic.pm index 6032427f1..bd269315e 100755 --- a/rt/lib/RT/Condition/Generic.pm +++ b/rt/lib/RT/Condition/Generic.pm @@ -1,80 +1,211 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK =head1 NAME - RT::Condition::Generic - deprecated, see RT::Condition + RT::Condition::Generic - ; =head1 SYNOPSIS - use RT::Condition::Generic; + use RT::Condition::Generic; + my $foo = new RT::Condition::IsApplicable( + TransactionObj => $tr, + TicketObj => $ti, + ScripObj => $scr, + Argument => $arg, + Type => $type); + + if ($foo->IsApplicable) { + # do something + } + =head1 DESCRIPTION -This module is provided only for backwards compatibility. =head1 METHODS +=begin testing + +ok (require RT::Condition::Generic); + +=end testing + + =cut -use strict; -use warnings; package RT::Condition::Generic; -use base 'RT::Condition'; + +use RT::Base; +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Base); + +# {{{ sub new +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + my $self = {}; + bless ($self, $class); + $self->_Init(@_); + return $self; +} +# }}} + +# {{{ sub _Init +sub _Init { + my $self = shift; + my %args = ( TransactionObj => undef, + TicketObj => undef, + ScripObj => undef, + TemplateObj => undef, + Argument => undef, + ApplicableTransTypes => undef, + @_ ); + + $self->{'Argument'} = $args{'Argument'}; + $self->{'ScripObj'} = $args{'ScripObj'}; + $self->{'TicketObj'} = $args{'TicketObj'}; + $self->{'TransactionObj'} = $args{'TransactionObj'}; + $self->{'ApplicableTransTypes'} = $args{'ApplicableTransTypes'}; +} +# }}} + +# Access Scripwide data + +# {{{ sub Argument + +=head2 Argument + +Return the optional argument associated with this ScripCondition + +=cut + +sub Argument { + my $self = shift; + return($self->{'Argument'}); +} +# }}} + +# {{{ sub TicketObj + +=head2 TicketObj + +Return the ticket object we're talking about + +=cut + +sub TicketObj { + my $self = shift; + return($self->{'TicketObj'}); +} +# }}} + +# {{{ sub ScripObj + +=head2 ScripObj + +Return the Scrip object we're talking about + +=cut + +sub ScripObj { + my $self = shift; + return($self->{'ScripObj'}); +} +# }}} +# {{{ sub TransactionObj + +=head2 TransactionObj + +Return the transaction object we're talking about + +=cut + +sub TransactionObj { + my $self = shift; + return($self->{'TransactionObj'}); +} +# }}} + +# {{{ sub Type + +=head2 Type + + + +=cut + +sub ApplicableTransTypes { + my $self = shift; + return($self->{'ApplicableTransTypes'}); +} +# }}} + + +# Scrip methods + + +#What does this type of Action does + +# {{{ sub Describe +sub Describe { + my $self = shift; + return ($self->loc("No description for [_1]", ref $self)); +} +# }}} + + +#Parse the templates, get things ready to go. + +#If this rule applies to this transaction, return true. + +# {{{ sub IsApplicable +sub IsApplicable { + my $self = shift; + return(undef); +} +# }}} + +# {{{ sub DESTROY +sub DESTROY { + my $self = shift; + + # We need to clean up all the references that might maybe get + # oddly circular + $self->{'TemplateObj'} =undef + $self->{'TicketObj'} = undef; + $self->{'TransactionObj'} = undef; + $self->{'ScripObj'} = undef; + +} + +# }}} eval "require RT::Condition::Generic_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/Generic_Vendor.pm}); -warn "RT::Condition::Generic has become RT::Condition. Please adjust your RT::Condition::Generic_Vendor file at " . $INC{"RT/Condition/Generic_Vendor.pm"} if !$@; - eval "require RT::Condition::Generic_Local"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/Generic_Local.pm}); -warn "RT::Condition::Generic has become RT::Condition. Please adjust your RT::Condition::Generic_Local file at " . $INC{"RT/Condition/Generic_Local.pm"} if !$@; 1; - diff --git a/rt/lib/RT/Condition/StatusChange.pm b/rt/lib/RT/Condition/StatusChange.pm index dba3b7a20..8afabcda0 100644 --- a/rt/lib/RT/Condition/StatusChange.pm +++ b/rt/lib/RT/Condition/StatusChange.pm @@ -1,54 +1,35 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK + + package RT::Condition::StatusChange; -use base 'RT::Condition'; +require RT::Condition::Generic; + use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Condition::Generic); =head2 IsApplicable diff --git a/rt/lib/RT/Config.pm b/rt/lib/RT/Config.pm index 7b57beaba..7aa25b380 100644 --- a/rt/lib/RT/Config.pm +++ b/rt/lib/RT/Config.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} package RT::Config; @@ -173,7 +173,7 @@ our %META = ( WidgetArguments => { Description => 'Theme', #loc # XXX: we need support for 'get values callback' - Values => [qw(3.5-default 3.4-compat web2)], + Values => [qw(3.5-default 3.4-compat web2 freeside2.1)], }, }, MessageBoxRichText => { @@ -231,29 +231,6 @@ our %META = ( }, }, }, - ResolveDefaultUpdateType => { - Section => 'General', #loc - Overridable => 1, - SortOrder => 9, - Widget => '/Widgets/Form/Select', - WidgetArguments => { - Description => 'Default Update Type when Resolving', #loc - Values => [qw(Comment Respond)], - ValuesLabel => { - Comment => "Comments (Not sent to requestors)", #loc - Respond => "Reply to requestors", #loc - }, - }, - }, - SuppressAutoOpenOnUpdate => { - Section => 'General', - Overridable => 1, - SortOrder => 10, - Widget => '/Widgets/Form/Boolean', - WidgetArguments => { - Description => 'Suppress automatic new to open status change on ticket update' # loc - } - }, # User overridable options for RT at a glance DefaultSummaryRows => { @@ -336,6 +313,16 @@ our %META = ( Hints => 'Use css rules to display text monospaced and with formatting preserved, but wrap as needed. This does not work well with IE6 and you should use the previous option', #loc }, }, + DisplayAfterQuickCreate => { + Section => 'Ticket display', + Overridable => 1, + SortOrder => 6, + Widget => '/Widgets/Form/Boolean', + WidgetArguments => { + Description => 'On Quick Create, redirect to ticket display', #loc + #Hints => '', #loc + }, + }, # User overridable locale options DateTimeFormat => { @@ -363,13 +350,15 @@ our %META = ( my $value = $self->Get('RTAddressRegexp'); return if $value; - $RT::Logger->debug( - 'The RTAddressRegexp option is not set in the config.' - .' Not setting this option results in additional SQL queries to' - .' check whether each address belongs to RT or not.' - .' It is especially important to set this option if RT recieves' - .' emails on addresses that are not in the database or config.' - ); + #XXX freeside - should fix this at some point, but it is being WAY + #too noisy in the logs + #$RT::Logger->error( + # 'The RTAddressRegexp option is not set in the config.' + # .' Not setting this option results in additional SQL queries to' + # .' check whether each address belongs to RT or not.' + # .' It is especially important to set this option if RT recieves' + # .' emails on addresses that are not in the database or config.' + #); }, }, # User overridable mail options @@ -806,8 +795,8 @@ sub SetFromConfig { # RTIR's options is set in main site config or RTFM's warn "Change of config option '$name' at $args{'File'} line $args{'Line'} has been ignored." - ." It may be ok, but we want you to be aware." - ." This option has been set earlier in $source{'File'} line $source{'Line'}." + ." It's may be ok, but we want you to be aware." + ." This option earlier has been set in $source{'File'} line $source{'Line'}." ; } @@ -868,7 +857,7 @@ sub SetFromConfig { # get entry for type we are looking for # XXX skip references to scalars or other references. - # Otherwie 5.10 goes boom. maybe we should skip any + # Otherwie 5.10 goes boom. may be we should skip any # reference next if ref($entry) eq 'SCALAR' || ref($entry) eq 'REF'; my $entry_ref = *{$entry}{ ref($ref) }; diff --git a/rt/lib/RT/CurrentUser.pm b/rt/lib/RT/CurrentUser.pm index 127116bdd..4ca2f9891 100755 --- a/rt/lib/RT/CurrentUser.pm +++ b/rt/lib/RT/CurrentUser.pm @@ -1,184 +1,195 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK =head1 NAME RT::CurrentUser - an RT object representing the current user =head1 SYNOPSIS - use RT::CurrentUser; - - # laod - my $current_user = new RT::CurrentUser; - $current_user->Load(...); - # or - my $current_user = RT::CurrentUser->new( $user_obj ); - # or - my $current_user = RT::CurrentUser->new( $address || $name || $id ); - - # manipulation - $current_user->UserObj->SetName('new_name'); + use RT::CurrentUser =head1 DESCRIPTION -B<Read-only> subclass of L<RT::User> class. Used to define the current -user. You should pass an instance of this class to constructors of -many RT classes, then the instance used to check ACLs and localize -strings. =head1 METHODS -See also L<RT::User> for a list of methods this class has. -=head2 new +=begin testing + +ok (require RT::CurrentUser); -Returns new CurrentUser object. Unlike all other classes of RT it takes -either subclass of C<RT::User> class object or scalar value that is -passed to Load method. +=end testing =cut package RT::CurrentUser; +use RT::Record; use RT::I18N; use strict; -use warnings; +use vars qw/@ISA/; +@ISA= qw(RT::Record); -use base qw/RT::User/; +# {{{ sub _Init #The basic idea here is that $self->CurrentUser is always supposed # to be a CurrentUser object. but that's hard to do when we're trying to load # the CurrentUser object -sub _Init { - my $self = shift; - my $User = shift; - - $self->{'table'} = "Users"; - - if ( defined $User ) { - - if ( UNIVERSAL::isa( $User, 'RT::User' ) ) { - $self->LoadById( $User->id ); - } - elsif ( ref $User ) { - $RT::Logger->crit( - "RT::CurrentUser->new() called with a bogus argument: $User"); - } - else { - $self->Load( $User ); - } - } +sub _Init { + my $self = shift; + my $Name = shift; - $self->_BuildTableAttributes; - -} + $self->{'table'} = "Users"; -=head2 Create, Delete and Set* + if (defined($Name)) { + $self->Load($Name); + } + + $self->CurrentUser($self); -As stated above it's a subclass of L<RT::User>, but this class is read-only -and calls to these methods are illegal. Return 'permission denied' message -and log an error. +} +# }}} -=cut +# {{{ sub Create sub Create { my $self = shift; - $RT::Logger->error('RT::CurrentUser is read-only, RT::User for manipulation'); return (0, $self->loc('Permission Denied')); } +# }}} + +# {{{ sub Delete + sub Delete { my $self = shift; - $RT::Logger->error('RT::CurrentUser is read-only, RT::User for manipulation'); return (0, $self->loc('Permission Denied')); } -sub _Set { - my $self = shift; - $RT::Logger->error('RT::CurrentUser is read-only, RT::User for manipulation'); - return (0, $self->loc('Permission Denied')); -} +# }}} + +# {{{ sub UserObj =head2 UserObj -Returns the L<RT::User> object associated with this CurrentUser object. + Returns the RT::User object associated with this CurrentUser object. =cut sub UserObj { my $self = shift; - - my $user = RT::User->new( $self ); - unless ( $user->LoadById( $self->Id ) ) { - $RT::Logger->error( - $self->loc("Couldn't load [_1] from the users database.\n", $self->Id) - ); + + unless ($self->{'UserObj'}) { + use RT::User; + $self->{'UserObj'} = RT::User->new($self); + unless ($self->{'UserObj'}->Load($self->Id)) { + $RT::Logger->err($self->loc("Couldn't load [_1] from the users database.\n", $self->Id)); + } + } - return $user; + return ($self->{'UserObj'}); } +# }}} -sub _CoreAccessible { - { - Name => { 'read' => 1 }, - Gecos => { 'read' => 1 }, - RealName => { 'read' => 1 }, - Lang => { 'read' => 1 }, - Password => { 'read' => 0, 'write' => 0 }, - EmailAddress => { 'read' => 1, 'write' => 0 } - }; - +# {{{ sub PrincipalObj + +=head2 PrincipalObj + + Returns this user's principal object. this is just a helper routine for + $self->UserObj->PrincipalObj + +=cut + +sub PrincipalObj { + my $self = shift; + return($self->UserObj->PrincipalObj); } + +# }}} + + +# {{{ sub PrincipalId + +=head2 PrincipalId + + Returns this user's principal Id. this is just a helper routine for + $self->UserObj->PrincipalId + +=cut + +sub PrincipalId { + my $self = shift; + return($self->UserObj->PrincipalId); +} + + +# }}} + + +# {{{ sub _Accessible +sub _Accessible { + my $self = shift; + my %Cols = ( + Name => 'read', + Gecos => 'read', + RealName => 'read', + Password => 'neither', + EmailAddress => 'read', + Privileged => 'read', + IsAdministrator => 'read' + ); + return($self->SUPER::_Accessible(@_, %Cols)); +} +# }}} + +# {{{ sub LoadByEmail + +=head2 LoadByEmail + +Loads a User into this CurrentUser object. +Takes the email address of the user to load. + +=cut + +sub LoadByEmail { + my $self = shift; + my $identifier = shift; + + $identifier = RT::User::CanonicalizeEmailAddress(undef, $identifier); + + $self->LoadByCol("EmailAddress",$identifier); + +} +# }}} + +# {{{ sub LoadByGecos + =head2 LoadByGecos Loads a User into this CurrentUser object. @@ -188,128 +199,171 @@ Takes a unix username as its only argument. sub LoadByGecos { my $self = shift; - return $self->LoadByCol( "Gecos", shift ); + my $identifier = shift; + + $self->LoadByCol("Gecos",$identifier); + } +# }}} + +# {{{ sub LoadByName =head2 LoadByName Loads a User into this CurrentUser object. Takes a Name. - =cut sub LoadByName { my $self = shift; - return $self->LoadByCol( "Name", shift ); + my $identifier = shift; + $self->LoadByCol("Name",$identifier); + } +# }}} -=head2 LanguageHandle +# {{{ sub Load -Returns this current user's langauge handle. Should take a language -specification. but currently doesn't - -=cut +=head2 Load -sub LanguageHandle { - my $self = shift; - if ( !defined $self->{'LangHandle'} - || !UNIVERSAL::can( $self->{'LangHandle'}, 'maketext' ) - || @_ ) - { - if ( my $lang = $self->Lang ) { - push @_, $lang; - } - elsif ( $self->id && ($self->id == ($RT::SystemUser->id||0) || $self->id == ($RT::Nobody->id||0)) ) { - # don't use ENV magic for system users - push @_, 'en'; - } +Loads a User into this CurrentUser object. +Takes either an integer (users id column reference) or a Name +The latter is deprecated. Instead, you should use LoadByName. +Formerly, this routine also took email addresses. - $self->{'LangHandle'} = RT::I18N->get_handle(@_); - } +=cut - # Fall back to english. - unless ( $self->{'LangHandle'} ) { - die "We couldn't get a dictionary. Ne mogu naidti slovar. No puedo encontrar dictionario."; - } - return $self->{'LangHandle'}; +sub Load { + my $self = shift; + my $identifier = shift; + + #if it's an int, load by id. otherwise, load by name. + if ($identifier !~ /\D/) { + $self->SUPER::LoadById($identifier); + } + else { + # This is a bit dangerous, we might get false authen if somebody + # uses ambigous userids or real names: + $self->LoadByCol("Name",$identifier); + } } -sub loc { - my $self = shift; - return '' if !defined $_[0] || $_[0] eq ''; +# }}} - my $handle = $self->LanguageHandle; +# {{{ sub IsPassword - if (@_ == 1) { - # pre-scan the lexicon hashes to return _AUTO keys verbatim, - # to keep locstrings containing '[' and '~' from tripping over Maketext - return $_[0] unless grep exists $_->{$_[0]}, @{ $handle->_lex_refs }; - } +=head2 IsPassword - return $handle->maketext(@_); -} +Takes a password as a string. Passes it off to IsPassword in this +user's UserObj. If it is the user's password and the user isn't +disabled, returns 1. -sub loc_fuzzy { - my $self = shift; - return '' if !defined $_[0] || $_[0] eq ''; +Otherwise, returns undef. - # XXX: work around perl's deficiency when matching utf8 data - return $_[0] if Encode::is_utf8($_[0]); +=cut - return $self->LanguageHandle->maketext_fuzzy( @_ ); +sub IsPassword { + my $self = shift; + my $value = shift; + + return ($self->UserObj->IsPassword($value)); } -=head2 CurrentUser +# }}} + +# {{{ sub Privileged + +=head2 Privileged -Return the current currentuser object +Returns true if the current user can be granted rights and be +a member of groups. =cut -sub CurrentUser { +sub Privileged { my $self = shift; - return($self); - + return ($self->UserObj->Privileged()); } -=head2 Authenticate +# }}} -Takes $password, $created and $nonce, and returns a boolean value -representing whether the authentication succeeded. -If both $nonce and $created are specified, validate $password against: +# {{{ sub HasRight - encode_base64(sha1( - $nonce . - $created . - sha1_hex( "$username:$realm:$server_pass" ) - )) +=head2 HasRight -where $server_pass is the md5_hex(password) digest stored in the -database, $created is in ISO time format, and $nonce is a random -string no longer than 32 bytes. +calls $self->UserObj->HasRight with the arguments passed in =cut -sub Authenticate { - my ($self, $password, $created, $nonce, $realm) = @_; +sub HasRight { + my $self = shift; + return ($self->UserObj->HasRight(@_)); +} + +# }}} - require Digest::MD5; - require Digest::SHA1; - require MIME::Base64; +# {{{ Localization - my $username = $self->UserObj->Name or return; - my $server_pass = $self->UserObj->__Value('Password') or return; - my $auth_digest = MIME::Base64::encode_base64(Digest::SHA1::sha1( - $nonce . - $created . - Digest::MD5::md5_hex("$username:$realm:$server_pass") - )); +=head2 LanguageHandle + +Returns this current user's langauge handle. Should take a language +specification. but currently doesn't - chomp($password); - chomp($auth_digest); +=begin testing + +ok (my $cu = RT::CurrentUser->new('root')); +ok (my $lh = $cu->LanguageHandle); +ok ($lh != undef); +ok ($lh->isa('Locale::Maketext')); +ok ($cu->loc('TEST_STRING') eq "Concrete Mixer", "Localized TEST_STRING into English"); +ok ($lh = $cu->LanguageHandle('fr')); +ok ($cu->loc('Before') eq "Avant", "Localized TEST_STRING into Frenc"); + +=end testing + +=cut + +sub LanguageHandle { + my $self = shift; + if ((!defined $self->{'LangHandle'}) || + (!UNIVERSAL::can($self->{'LangHandle'}, 'maketext')) || + (@_)) { + $self->{'LangHandle'} = RT::I18N->get_handle(@_); + } + # Fall back to english. + unless ($self->{'LangHandle'}) { + die "We couldn't get a dictionary. Nye mogu naidti slovar. No puedo encontrar dictionario."; + } + return ($self->{'LangHandle'}); +} + +sub loc { + my $self = shift; + return '' if $_[0] eq ''; + + my $handle = $self->LanguageHandle; + + if (@_ == 1) { + # pre-scan the lexicon hashes to return _AUTO keys verbatim, + # to keep locstrings containing '[' and '~' from tripping over Maketext + return $_[0] unless grep { exists $_->{$_[0]} } @{ $handle->_lex_refs }; + } + + return $handle->maketext(@_); +} + +sub loc_fuzzy { + my $self = shift; + return '' if $_[0] eq ''; + + # XXX: work around perl's deficiency when matching utf8 data + return $_[0] if Encode::is_utf8($_[0]); + my $result = $self->LanguageHandle->maketext_fuzzy(@_); - return ($password eq $auth_digest); + return($result); } +# }}} eval "require RT::CurrentUser_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/CurrentUser_Vendor.pm}); @@ -317,3 +371,4 @@ eval "require RT::CurrentUser_Local"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/CurrentUser_Local.pm}); 1; + diff --git a/rt/lib/RT/CustomField.pm b/rt/lib/RT/CustomField.pm index 260e9bd2a..dc4108044 100644 --- a/rt/lib/RT/CustomField.pm +++ b/rt/lib/RT/CustomField.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) @@ -122,6 +122,7 @@ sub Create { Disabled => '0', LinkToValue => '', IncludeContentForValue => '', + Required => '0', @_); $self->SUPER::Create( @@ -381,6 +382,8 @@ sub _CoreAccessible { {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Disabled => {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, + Required => + {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, } }; diff --git a/rt/lib/RT/CustomFieldValues/Queues.pm b/rt/lib/RT/CustomFieldValues/Queues.pm new file mode 100644 index 000000000..59529b6ac --- /dev/null +++ b/rt/lib/RT/CustomFieldValues/Queues.pm @@ -0,0 +1,30 @@ +package RT::CustomFieldValues::Queues; + +use strict; +use warnings; + +use base qw(RT::CustomFieldValues::External); + +sub SourceDescription { + return 'RT ticket queues'; +} + +sub ExternalValues { + my $self = shift; + + my @res; + my $i = 0; + my $queues = RT::Queues->new( $self->CurrentUser ); + $queues->UnLimit; + $queues->OrderByCols( { FIELD => 'Name' } ); + while( my $queue = $queues->Next ) { + push @res, { + name => $queue->Name, + description => $queue->Description, + sortorder => $i++, + }; + } + return \@res; +} + +1; diff --git a/rt/lib/RT/CustomField_Overlay.pm b/rt/lib/RT/CustomField_Overlay.pm index 9cf608e5a..c91f12037 100644 --- a/rt/lib/RT/CustomField_Overlay.pm +++ b/rt/lib/RT/CustomField_Overlay.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} package RT::CustomField; @@ -97,6 +97,11 @@ our %FieldTypes = ( 'Enter one value with autocompletion', # loc 'Enter up to [_1] values with autocompletion', # loc ], + Date => [ + 'Select multiple dates', # loc + 'Select date', # loc + 'Select up to [_1] dates', # loc + ], ); @@ -112,7 +117,6 @@ RT::CustomField->_ForObjectType( 'RT::Group' => "Groups", ); our $RIGHTS = { SeeCustomField => 'See custom fields', # loc_pair AdminCustomField => 'Create, delete and modify custom fields', # loc_pair - AdminCustomFieldValues => 'Create, delete and modify custom fields values', # loc_pair ModifyCustomField => 'Add, delete and modify custom field values for objects' #loc_pair }; @@ -401,7 +405,7 @@ sub AddValue { my $self = shift; my %args = @_; - unless ($self->CurrentUserHasRight('AdminCustomField') || $self->CurrentUserHasRight('AdminCustomFieldValues')) { + unless ($self->CurrentUserHasRight('AdminCustomField')) { return (0, $self->loc('Permission Denied')); } @@ -430,7 +434,7 @@ Does not remove this value for any article which has had it selected sub DeleteValue { my $self = shift; my $id = shift; - unless ( $self->CurrentUserHasRight('AdminCustomField') || $self->CurrentUserHasRight('AdminCustomFieldValues') ) { + unless ( $self->CurrentUserHasRight('AdminCustomField') ) { return (0, $self->loc('Permission Denied')); } @@ -830,7 +834,7 @@ Returns an array of all possible composite values for custom fields. sub TypeComposites { my $self = shift; - return grep !/(?:[Tt]ext|Combobox)-0/, map { ("$_-1", "$_-0") } $self->Types; + return grep !/(?:[Tt]ext|Combobox|Date)-0/, map { ("$_-1", "$_-0") } $self->Types; } =head2 SetLookupType @@ -1161,6 +1165,15 @@ sub AddValueForObject { $extra_values--; } } + # For date, we need to store Content as ISO date + if ($self->Type eq 'Date') { + my $DateObj = new RT::Date( $self->CurrentUser ); + $DateObj->Set( + Format => 'unknown', + Value => $args{'Content'}, + ); + $args{'Content'} = $DateObj->ISO; + } my $newval = RT::ObjectCustomFieldValue->new( $self->CurrentUser ); my $val = $newval->Create( ObjectType => ref($obj), diff --git a/rt/lib/RT/Date.pm b/rt/lib/RT/Date.pm index e51a77540..2c7a6b66f 100644 --- a/rt/lib/RT/Date.pm +++ b/rt/lib/RT/Date.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} =head1 NAME @@ -273,6 +273,39 @@ sub SetToMidnight { return $self->Unix( $new ); } +=head2 SetToStart PERIOD[, Timezone => 'utc' ] + +Set to the beginning of the current PERIOD, which can be +"year", "month", "day", "hour", or "minute". + +=cut + +sub SetToStart { + my $self = shift; + my $p = uc(shift); + my %args = @_; + my $tz = $args{'Timezone'} || ''; + my @localtime = $self->Localtime($tz); + + # This is the cleanest way to implement it, I swear. + { + $localtime[0]=0; + last if ($p eq 'MINUTE'); + $localtime[1]=0; + last if ($p eq 'HOUR'); + $localtime[2]=0; + last if ($p eq 'DAY'); + $localtime[3]=1; + last if ($p eq 'MONTH'); + $localtime[4]=0; + last if ($p eq 'YEAR'); + $RT::Logger->warning("Couldn't find start date of '$p'."); + return; + } + my $new = $self->Timelocal($tz, @localtime); + return $self->Unix($new); +} + =head2 Diff Takes either an C<RT::Date> object or the date in unixtime format as a string, @@ -479,6 +512,25 @@ Adds 24 hours to the current time. Returns new unix time. sub AddDay { return $_[0]->AddSeconds($DAY) } +=head2 AddMonth + +Adds one month to the current time. Returns new +unix time. + +=cut + +sub AddMonth { + require Time::ParseDate; + my $self = shift; + my $date = ( + Time::ParseDate::parsedate( + '1 month', + NOW => $self->Unix + ) + ); + return $self->Unix($date); +} + =head2 Unix [unixtime] Optionally takes a date in unix seconds since the epoch format. @@ -858,7 +910,7 @@ sub RFC2616 { Seconds => 1, DayOfWeek => 1, ); - my $res = $self->RFC2822( %args ); + my $res = $self->RFC2822( @_ ); $res =~ s/\s*[+-]\d\d\d\d$/ GMT/ if $args{'Time'}; return $res; } diff --git a/rt/lib/RT/Extension/ActivityReports.pm b/rt/lib/RT/Extension/ActivityReports.pm new file mode 100644 index 000000000..52d8ba6ab --- /dev/null +++ b/rt/lib/RT/Extension/ActivityReports.pm @@ -0,0 +1,3 @@ +package RT::Extension::ActivityReports; + +our $VERSION = '0.2'; diff --git a/rt/lib/RT/Group.pm b/rt/lib/RT/Group.pm index 1f2c7c6bf..4dcef3f07 100755 --- a/rt/lib/RT/Group.pm +++ b/rt/lib/RT/Group.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -86,7 +61,7 @@ sub _Init { -=head2 Create PARAMHASH +=item Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -94,7 +69,7 @@ Create takes a hash of values and creates a row in the database: varchar(255) 'Description'. varchar(64) 'Domain'. varchar(64) 'Type'. - int(11) 'Instance'. + varchar(64) 'Instance'. =cut @@ -123,7 +98,7 @@ sub Create { -=head2 id +=item id Returns the current value of id. (In the database, id is stored as int(11).) @@ -132,14 +107,14 @@ Returns the current value of id. =cut -=head2 Name +=item Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=head2 SetName VALUE +=item SetName VALUE Set Name to VALUE. @@ -150,14 +125,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Description +=item Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=head2 SetDescription VALUE +=item SetDescription VALUE Set Description to VALUE. @@ -168,14 +143,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Domain +=item Domain Returns the current value of Domain. (In the database, Domain is stored as varchar(64).) -=head2 SetDomain VALUE +=item SetDomain VALUE Set Domain to VALUE. @@ -186,14 +161,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Type +=item Type Returns the current value of Type. (In the database, Type is stored as varchar(64).) -=head2 SetType VALUE +=item SetType VALUE Set Type to VALUE. @@ -204,40 +179,40 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Instance +=item Instance Returns the current value of Instance. -(In the database, Instance is stored as int(11).) +(In the database, Instance is stored as varchar(64).) -=head2 SetInstance VALUE +=item SetInstance VALUE Set Instance to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, Instance will be stored as a int(11).) +(In the database, Instance will be stored as a varchar(64).) =cut -sub _CoreAccessible { +sub _ClassAccessible { { id => - {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, type => 'int(11)', default => ''}, Name => - {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, type => 'varchar(200)', default => ''}, Description => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, type => 'varchar(255)', default => ''}, Domain => - {read => 1, write => 1, sql_type => 12, length => 64, is_blob => 0, is_numeric => 0, type => 'varchar(64)', default => ''}, + {read => 1, write => 1, type => 'varchar(64)', default => ''}, Type => - {read => 1, write => 1, sql_type => 12, length => 64, is_blob => 0, is_numeric => 0, type => 'varchar(64)', default => ''}, + {read => 1, write => 1, type => 'varchar(64)', default => ''}, Instance => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, write => 1, type => 'varchar(64)', default => ''}, } }; @@ -269,7 +244,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/GroupMember.pm b/rt/lib/RT/GroupMember.pm index 00381f459..8de1a73fe 100755 --- a/rt/lib/RT/GroupMember.pm +++ b/rt/lib/RT/GroupMember.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -86,7 +61,7 @@ sub _Init { -=head2 Create PARAMHASH +=item Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -114,7 +89,7 @@ sub Create { -=head2 id +=item id Returns the current value of id. (In the database, id is stored as int(11).) @@ -123,14 +98,14 @@ Returns the current value of id. =cut -=head2 GroupId +=item GroupId Returns the current value of GroupId. (In the database, GroupId is stored as int(11).) -=head2 SetGroupId VALUE +=item SetGroupId VALUE Set GroupId to VALUE. @@ -141,14 +116,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 MemberId +=item MemberId Returns the current value of MemberId. (In the database, MemberId is stored as int(11).) -=head2 SetMemberId VALUE +=item SetMemberId VALUE Set MemberId to VALUE. @@ -160,15 +135,15 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -sub _CoreAccessible { +sub _ClassAccessible { { id => - {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, type => 'int(11)', default => ''}, GroupId => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, MemberId => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, } }; @@ -200,7 +175,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/GroupMembers.pm b/rt/lib/RT/GroupMembers.pm index 49415e25b..31cb9536f 100755 --- a/rt/lib/RT/GroupMembers.pm +++ b/rt/lib/RT/GroupMembers.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -89,7 +64,7 @@ sub _Init { } -=head2 NewItem +=item NewItem Returns an empty new RT::GroupMember item @@ -126,7 +101,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Groups.pm b/rt/lib/RT/Groups.pm index 4f33a4afa..29f12a5a0 100755 --- a/rt/lib/RT/Groups.pm +++ b/rt/lib/RT/Groups.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -89,7 +64,7 @@ sub _Init { } -=head2 NewItem +=item NewItem Returns an empty new RT::Group item @@ -116,6 +91,8 @@ sub NewItem { }; + + =head1 SEE ALSO This class allows "overlay" methods to be placed @@ -124,7 +101,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Groups_Overlay.pm b/rt/lib/RT/Groups_Overlay.pm index ed18939f1..1b3ef51e2 100644 --- a/rt/lib/RT/Groups_Overlay.pm +++ b/rt/lib/RT/Groups_Overlay.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} =head1 NAME @@ -323,6 +323,7 @@ sub WithRight { $from_group->WithGroupRight( %args ); #XXX: DIRTY HACK + use DBIx::SearchBuilder 1.50; #no version on ::Union :( use DBIx::SearchBuilder::Union; my $union = new DBIx::SearchBuilder::Union; $union->add($from_role); diff --git a/rt/lib/RT/Handle.pm b/rt/lib/RT/Handle.pm index a1b802fed..5cdb65e5b 100644 --- a/rt/lib/RT/Handle.pm +++ b/rt/lib/RT/Handle.pm @@ -1,1070 +1,98 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK =head1 NAME -RT::Handle - RT's database handle + RT::Handle - RT's database handle =head1 SYNOPSIS - use RT; - BEGIN { RT::LoadConfig() }; - use RT::Handle; + use RT::Handle; =head1 DESCRIPTION -C<RT::Handle> is RT specific wrapper over one of L<DBIx::SearchBuilder::Handle> -classes. As RT works with different types of DBs we subclass repsective handler -from L<DBIx::SerachBuilder>. Type of the DB is defined by C<DatabasseType> RT's -config option. You B<must> load this module only when the configs have been -loaded. - -=cut +=begin testing -package RT::Handle; +ok(require RT::Handle); -use strict; -use warnings; -use vars qw/@ISA/; +=end testing =head1 METHODS -=head2 FinalizeDatabaseType - -Sets RT::Handle's superclass to the correct subclass of -L<DBIx::SearchBuilder::Handle>, using the C<DatabaseType> configuration. - =cut -sub FinalizeDatabaseType { - eval "use DBIx::SearchBuilder::Handle::". RT->Config->Get('DatabaseType') ."; - \@ISA= qw(DBIx::SearchBuilder::Handle::". RT->Config->Get('DatabaseType') .");"; +package RT::Handle; - if ($@) { - die "Unable to load DBIx::SearchBuilder database handle for '". RT->Config->Get('DatabaseType') ."'.\n". - "Perhaps you've picked an invalid database type or spelled it incorrectly.\n". - $@; - } -} +use strict; +use vars qw/@ISA/; + +eval "use DBIx::SearchBuilder::Handle::$RT::DatabaseType; +\@ISA= qw(DBIx::SearchBuilder::Handle::$RT::DatabaseType);"; +#TODO check for errors here. =head2 Connect -Connects to RT's database using credentials and options from the RT config. -Takes nothing. +Connects to RT's database handle. +Takes nothing. Calls SUPER::Connect with the needed args =cut sub Connect { - my $self = shift; - - my $db_type = RT->Config->Get('DatabaseType'); - if ( $db_type eq 'Oracle' ) { - $ENV{'NLS_LANG'} = "AMERICAN_AMERICA.AL32UTF8"; - $ENV{'NLS_NCHAR'} = "AL32UTF8"; - } - - $self->SUPER::Connect( - User => RT->Config->Get('DatabaseUser'), - Password => RT->Config->Get('DatabasePassword'), - ); - - if ( $db_type eq 'mysql' ) { - my $version = $self->DatabaseVersion; - ($version) = $version =~ /^(\d+\.\d+)/; - $self->dbh->do("SET NAMES 'utf8'") if $version >= 4.1; - } - +my $self=shift; - if ( $db_type eq 'Pg' ) { - my $version = $self->DatabaseVersion; - ($version) = $version =~ /^(\d+\.\d+)/; - $self->dbh->do("SET bytea_output = 'escape'") if $version >= 9.0; - } +# Unless the database port is a positive integer, we really don't want to pass it. - - - $self->dbh->{'LongReadLen'} = RT->Config->Get('MaxAttachmentSize'); +$self->SUPER::Connect( + User => $RT::DatabaseUser, + Password => $RT::DatabasePassword, + ); + } -=head2 BuildDSN +=item BuildDSN -Build the DSN for the RT database. Doesn't take any parameters, draws all that -from the config. +Build the DSN for the RT database. doesn't take any parameters, draws all that +from the config file. =cut -require File::Spec; sub BuildDSN { my $self = shift; - # Unless the database port is a positive integer, we really don't want to pass it. - my $db_port = RT->Config->Get('DatabasePort'); - $db_port = undef unless (defined $db_port && $db_port =~ /^(\d+)$/); - my $db_host = RT->Config->Get('DatabaseHost'); - $db_host = undef unless $db_host; - my $db_name = RT->Config->Get('DatabaseName'); - my $db_type = RT->Config->Get('DatabaseType'); - $db_name = File::Spec->catfile($RT::VarPath, $db_name) - if $db_type eq 'SQLite' && !File::Spec->file_name_is_absolute($db_name); - - my %args = ( - Host => $db_host, - Database => $db_name, - Port => $db_port, - Driver => $db_type, - RequireSSL => RT->Config->Get('DatabaseRequireSSL'), - DisconnectHandleOnDestroy => 1, - ); - if ( $db_type eq 'Oracle' && $db_host ) { - $args{'SID'} = delete $args{'Database'}; - } - $self->SUPER::BuildDSN( %args ); -} - -=head2 DSN - -Returns the DSN for this handle. In order to get correct value you must -build DSN first, see L</BuildDSN>. - -This is method can be called as class method, in this case creates -temporary handle object, L</BuildDSN builds DSN> and returns it. - -=cut - -sub DSN { - my $self = shift; - return $self->SUPER::DSN if ref $self; - - my $handle = $self->new; - $handle->BuildDSN; - return $handle->DSN; -} - -=head2 SystemDSN - -Returns a DSN suitable for database creates and drops -and user creates and drops. - -Gets RT's DSN first (see L<DSN>) and then change it according -to requirements of a database system RT's using. - -=cut - -sub SystemDSN { - my $self = shift; - - my $db_name = RT->Config->Get('DatabaseName'); - my $db_type = RT->Config->Get('DatabaseType'); - - my $dsn = $self->DSN; - if ( $db_type eq 'mysql' ) { - # with mysql, you want to connect sans database to funge things - $dsn =~ s/dbname=\Q$db_name//; - } - elsif ( $db_type eq 'Pg' ) { - # with postgres, you want to connect to template1 database - $dsn =~ s/dbname=\Q$db_name/dbname=template1/; - } - elsif ( $db_type eq 'Informix' ) { - # with Informix, you want to connect sans database: - $dsn =~ s/Informix:\Q$db_name/Informix:/; - } - return $dsn; -} - -=head2 Database compatibility and integrity checks - - - -=cut - -sub CheckIntegrity { - my $self = shift; - - my $dsn = $self->DSN; - my $user = RT->Config->Get('DatabaseUser'); - my $pass = RT->Config->Get('DatabasePassword'); - - my $dbh = DBI->connect( - $dsn, $user, $pass, - { RaiseError => 0, PrintError => 0 }, - ); - unless ( $dbh ) { - return (0, 'no connection', "Failed to connect to $dsn as user '$user': ". $DBI::errstr); - } - - RT::ConnectToDatabase(); - RT::InitLogging(); - - require RT::CurrentUser; - my $test_user = new RT::CurrentUser; - $test_user->Load('RT_System'); - unless ( $test_user->id ) { - return (0, 'no system user', "Couldn't find RT_System user in the DB '$dsn'"); - } - - $test_user = new RT::CurrentUser; - $test_user->Load('Nobody'); - unless ( $test_user->id ) { - return (0, 'no nobody user', "Couldn't find Nobody user in the DB '$dsn'"); - } - - return $dbh; -} - -sub CheckCompatibility { - my $self = shift; - my $dbh = shift; - my $state = shift || 'post'; - - my $db_type = RT->Config->Get('DatabaseType'); - if ( $db_type eq "mysql" ) { - # Check which version we're running - my $version = ($dbh->selectrow_array("show variables like 'version'"))[1]; - return (0, "couldn't get version of the mysql server") - unless $version; - - ($version) = $version =~ /^(\d+\.\d+)/; - return (0, "RT is unsupported on MySQL versions before 4.0.x, it's $version") - if $version < 4; - - # MySQL must have InnoDB support - my $innodb = ($dbh->selectrow_array("show variables like 'have_innodb'"))[1]; - if ( lc $innodb eq "no" ) { - return (0, "RT requires that MySQL be compiled with InnoDB table support.\n". - "See http://dev.mysql.com/doc/mysql/en/InnoDB.html"); - } elsif ( lc $innodb eq "disabled" ) { - return (0, "RT requires that MySQL InnoDB table support be enabled.\n". - "Remove the 'skip-innodb' line from your my.cnf file, restart MySQL, and try again.\n"); - } - - if ( $state eq 'post' ) { - my $create_table = $dbh->selectrow_arrayref("SHOW CREATE TABLE Tickets")->[1]; - unless ( $create_table =~ /(?:ENGINE|TYPE)\s*=\s*InnoDB/i ) { - return (0, "RT requires that all its tables be of InnoDB type. Upgrade RT tables."); - } - } - if ( $version >= 4.1 && $state eq 'post' ) { - my $create_table = $dbh->selectrow_arrayref("SHOW CREATE TABLE Attachments")->[1]; - unless ( $create_table =~ /\bContent\b[^,]*BLOB/i ) { - return (0, "RT since version 3.8 has new schema for MySQL versions after 4.1.0\n" - ."Follow instructions in the UPGRADING.mysql file."); - } - } - } - return (1) -} - -=head2 Database maintanance - -=head3 CreateDatabase $DBH - -Creates a new database. This method can be used as class method. - -Takes DBI handle. Many database systems require special handle to -allow you to create a new database, so you have to use L<SystemDSN> -method during connection. - -Fetches type and name of the DB from the config. - -=cut - -sub CreateDatabase { - my $self = shift; - my $dbh = shift or return (0, "No DBI handle provided"); - my $db_type = RT->Config->Get('DatabaseType'); - my $db_name = RT->Config->Get('DatabaseName'); - - my $status; - if ( $db_type eq 'SQLite' ) { - return (1, 'Skipped as SQLite doesn\'t need any action'); - } - elsif ( $db_type eq 'Oracle' ) { - my $db_user = RT->Config->Get('DatabaseUser'); - my $db_pass = RT->Config->Get('DatabasePassword'); - $status = $dbh->do( - "CREATE USER $db_user IDENTIFIED BY $db_pass" - ." default tablespace USERS" - ." temporary tablespace TEMP" - ." quota unlimited on USERS" - ); - unless ( $status ) { - return $status, "Couldn't create user $db_user identified by $db_pass." - ."\nError: ". $dbh->errstr; - } - $status = $dbh->do( "GRANT connect, resource TO $db_user" ); - unless ( $status ) { - return $status, "Couldn't grant connect and resource to $db_user." - ."\nError: ". $dbh->errstr; - } - return (1, "Created user $db_user. All RT's objects should be in his schema."); - } - elsif ( $db_type eq 'Pg' ) { - # XXX: as we get external DBH we don't know if RaiseError or PrintError - # are enabled, so we have to setup it here and restore them back - $status = $dbh->do("CREATE DATABASE $db_name WITH ENCODING='UNICODE' TEMPLATE template0") - || $dbh->do("CREATE DATABASE $db_name TEMPLATE template0"); - } - elsif ( $db_type eq 'Informix' ) { - local $ENV{'DB_LOCALE'} = 'en_us.utf8'; - $status = $dbh->do("CREATE DATABASE $db_name WITH BUFFERED LOG"); - } - else { - $status = $dbh->do("CREATE DATABASE $db_name"); - } - return ($status, $DBI::errstr); -} - -=head3 DropDatabase $DBH [Force => 0] - -Drops RT's database. This method can be used as class method. - -Takes DBI handle as first argument. Many database systems require -special handle to allow you to create a new database, so you have -to use L<SystemDSN> method during connection. - -Fetches type and name of the DB from the config. - -=cut - -sub DropDatabase { - my $self = shift; - my $dbh = shift or return (0, "No DBI handle provided"); - - my $db_type = RT->Config->Get('DatabaseType'); - my $db_name = RT->Config->Get('DatabaseName'); - - if ( $db_type eq 'Oracle' || $db_type eq 'Informix' ) { - my $db_user = RT->Config->Get('DatabaseUser'); - my $status = $dbh->do( "DROP USER $db_user CASCADE" ); - unless ( $status ) { - return 0, "Couldn't drop user $db_user." - ."\nError: ". $dbh->errstr; - } - return (1, "Successfully dropped user '$db_user' with his schema."); - } - elsif ( $db_type eq 'SQLite' ) { - my $path = $db_name; - $path = "$RT::VarPath/$path" unless substr($path, 0, 1) eq '/'; - unlink $path or return (0, "Couldn't remove '$path': $!"); - return (1); - } else { - $dbh->do("DROP DATABASE ". $db_name) - or return (0, $DBI::errstr); - } - return (1); -} - -=head2 InsertACL - -=cut - -sub InsertACL { - my $self = shift; - my $dbh = shift; - my $base_path = shift || $RT::EtcPath; - - my $db_type = RT->Config->Get('DatabaseType'); - return (1) if $db_type eq 'SQLite'; - - $dbh = $self->dbh if !$dbh && ref $self; - return (0, "No DBI handle provided") unless $dbh; - - return (0, "'$base_path' doesn't exist") unless -e $base_path; - - my $path; - if ( -d $base_path ) { - $path = File::Spec->catfile( $base_path, "acl.$db_type"); - $path = $self->GetVersionFile($dbh, $path); - - $path = File::Spec->catfile( $base_path, "acl") - unless $path && -e $path; - return (0, "Couldn't find ACLs for $db_type") - unless -e $path; - } else { - $path = $base_path; - } - - local *acl; - do $path || return (0, "Couldn't load ACLs: " . $@); - my @acl = acl($dbh); - foreach my $statement (@acl) { - my $sth = $dbh->prepare($statement) - or return (0, "Couldn't prepare SQL query:\n $statement\n\nERROR: ". $dbh->errstr); - unless ( $sth->execute ) { - return (0, "Couldn't run SQL query:\n $statement\n\nERROR: ". $sth->errstr); - } - } - return (1); -} - -=head2 InsertSchema - -=cut - -sub InsertSchema { - my $self = shift; - my $dbh = shift; - my $base_path = (shift || $RT::EtcPath); - - $dbh = $self->dbh if !$dbh && ref $self; - return (0, "No DBI handle provided") unless $dbh; - - my $db_type = RT->Config->Get('DatabaseType'); - - my $file; - if ( -d $base_path ) { - $file = $base_path . "/schema." . $db_type; - } else { - $file = $base_path; - } - - $file = $self->GetVersionFile( $dbh, $file ); - unless ( $file ) { - return (0, "Couldn't find schema file(s) '$file*'"); - } - unless ( -f $file && -r $file ) { - return (0, "File '$file' doesn't exist or couldn't be read"); - } - - my (@schema); - - open my $fh_schema, "<$file"; - - my $has_local = 0; - open my $fh_schema_local, "<" . $self->GetVersionFile( $dbh, $RT::LocalEtcPath . "/schema." . $db_type ) - and $has_local = 1; - - my $statement = ""; - foreach my $line ( <$fh_schema>, ($_ = ';;'), $has_local? <$fh_schema_local>: () ) { - $line =~ s/\#.*//g; - $line =~ s/--.*//g; - $statement .= $line; - if ( $line =~ /;(\s*)$/ ) { - $statement =~ s/;(\s*)$//g; - push @schema, $statement; - $statement = ""; - } - } - close $fh_schema; close $fh_schema_local; - - if ( $db_type eq 'Oracle' ) { - my $db_user = RT->Config->Get('DatabaseUser'); - my $status = $dbh->do( "ALTER SESSION SET CURRENT_SCHEMA=$db_user" ); - unless ( $status ) { - return $status, "Couldn't set current schema to $db_user." - ."\nError: ". $dbh->errstr; - } - } - - local $SIG{__WARN__} = sub {}; - my $is_local = 0; - $dbh->begin_work or return (0, "Couldn't begin transaction: ". $dbh->errstr); - foreach my $statement (@schema) { - if ( $statement =~ /^\s*;$/ ) { - $is_local = 1; next; - } - - my $sth = $dbh->prepare($statement) - or return (0, "Couldn't prepare SQL query:\n$statement\n\nERROR: ". $dbh->errstr); - unless ( $sth->execute or $is_local ) { - return (0, "Couldn't run SQL query:\n$statement\n\nERROR: ". $sth->errstr); - } - } - $dbh->commit or return (0, "Couldn't commit transaction: ". $dbh->errstr); - return (1); -} - -=head1 GetVersionFile - -Takes base name of the file as argument, scans for <base name>-<version> named -files and returns file name with closest version to the version of the RT DB. - -=cut - -sub GetVersionFile { - my $self = shift; - my $dbh = shift; - my $base_name = shift; - - my $db_version = ref $self - ? $self->DatabaseVersion - : do { - my $tmp = RT::Handle->new; - $tmp->dbh($dbh); - $tmp->DatabaseVersion; - }; - - require File::Glob; - my @files = File::Glob::bsd_glob("$base_name*"); - return '' unless @files; - - my %version = map { $_ =~ /\.\w+-([-\w\.]+)$/; ($1||0) => $_ } @files; - my $version; - foreach ( reverse sort cmp_version keys %version ) { - if ( cmp_version( $db_version, $_ ) >= 0 ) { - $version = $_; - last; - } - } - - return defined $version? $version{ $version } : undef; -} - -sub cmp_version($$) { - my ($a, $b) = (@_); - $b =~ s/HEAD$/9999/; - my @a = split /[^0-9]+/, $a; - my @b = split /[^0-9]+/, $b; - for ( my $i = 0; $i < @a; $i++ ) { - return 1 unless defined $b[$i]; - return $a[$i] <=> $b[$i] if $a[$i] <=> $b[$i]; - } - return 0 if @a == @b; - return -1; -} - - -=head2 InsertInitialData - -Inserts system objects into RT's DB, like system user or 'nobody', -internal groups and other records required. However, this method -doesn't insert any real users like 'root' and you have to use -InsertData or another way to do that. - -Takes no arguments. Returns status and message tuple. - -It's safe to call this method even if those objects already exist. - -=cut - -sub InsertInitialData { - my $self = shift; - - my @warns; - - # create RT_System user and grant him rights - { - require RT::CurrentUser; - - my $test_user = RT::User->new( new RT::CurrentUser ); - $test_user->Load('RT_System'); - if ( $test_user->id ) { - push @warns, "Found system user in the DB."; - } - else { - my $user = RT::User->new( new RT::CurrentUser ); - my ( $val, $msg ) = $user->_BootstrapCreate( - Name => 'RT_System', - RealName => 'The RT System itself', - Comments => 'Do not delete or modify this user. ' - . 'It is integral to RT\'s internal database structures', - Creator => '1', - LastUpdatedBy => '1', - ); - return ($val, $msg) unless $val; - } - DBIx::SearchBuilder::Record::Cachable->FlushCache; - } - - # init RT::SystemUser and RT::System objects - RT::InitSystemObjects(); - unless ( $RT::SystemUser->id ) { - return (0, "Couldn't load system user"); - } - - # grant SuperUser right to system user - { - my $test_ace = RT::ACE->new( $RT::SystemUser ); - $test_ace->LoadByCols( - PrincipalId => ACLEquivGroupId( $RT::SystemUser->Id ), - PrincipalType => 'Group', - RightName => 'SuperUser', - ObjectType => 'RT::System', - ObjectId => 1, - ); - if ( $test_ace->id ) { - push @warns, "System user has global SuperUser right."; - } else { - my $ace = RT::ACE->new( $RT::SystemUser ); - my ( $val, $msg ) = $ace->_BootstrapCreate( - PrincipalId => ACLEquivGroupId( $RT::SystemUser->Id ), - PrincipalType => 'Group', - RightName => 'SuperUser', - ObjectType => 'RT::System', - ObjectId => 1, - ); - return ($val, $msg) unless $val; - } - DBIx::SearchBuilder::Record::Cachable->FlushCache; - } - - # system groups - # $self->loc('Everyone'); # For the string extractor to get a string to localize - # $self->loc('Privileged'); # For the string extractor to get a string to localize - # $self->loc('Unprivileged'); # For the string extractor to get a string to localize - foreach my $name (qw(Everyone Privileged Unprivileged)) { - my $group = RT::Group->new( $RT::SystemUser ); - $group->LoadSystemInternalGroup( $name ); - if ( $group->id ) { - push @warns, "System group '$name' already exists."; - next; - } - - $group = RT::Group->new( $RT::SystemUser ); - my ( $val, $msg ) = $group->_Create( - Type => $name, - Domain => 'SystemInternal', - Description => 'Pseudogroup for internal use', # loc - Name => '', - Instance => '', - ); - return ($val, $msg) unless $val; - } - - # nobody - { - my $user = RT::User->new( $RT::SystemUser ); - $user->Load('Nobody'); - if ( $user->id ) { - push @warns, "Found 'Nobody' user in the DB."; - } - else { - my ( $val, $msg ) = $user->Create( - Name => 'Nobody', - RealName => 'Nobody in particular', - Comments => 'Do not delete or modify this user. It is integral ' - .'to RT\'s internal data structures', - Privileged => 0, - ); - return ($val, $msg) unless $val; - } - - if ( $user->HasRight( Right => 'OwnTicket', Object => $RT::System ) ) { - push @warns, "User 'Nobody' has global OwnTicket right."; - } else { - my ( $val, $msg ) = $user->PrincipalObj->GrantRight( - Right => 'OwnTicket', - Object => $RT::System, - ); - return ($val, $msg) unless $val; - } - } +$RT::DatabasePort = undef unless (defined $RT::DatabasePort && $RT::DatabasePort =~ /^(\d+)$/); +$RT::DatabaseHost = undef unless (defined $RT::DatabaseHost && $RT::DatabaseHost ne ''); - # rerun to get init Nobody as well - RT::InitSystemObjects(); + $self->SUPER::BuildDSN(Host => $RT::DatabaseHost, + Database => $RT::DatabaseName, + Port => $RT::DatabasePort, + Driver => $RT::DatabaseType, + RequireSSL => $RT::DatabaseRequireSSL, + DisconnectHandleOnDestroy => 1 + ); + - # system role groups - foreach my $name (qw(Owner Requestor Cc AdminCc)) { - my $group = RT::Group->new( $RT::SystemUser ); - $group->LoadSystemRoleGroup( $name ); - if ( $group->id ) { - push @warns, "System role '$name' already exists."; - next; - } - - $group = RT::Group->new( $RT::SystemUser ); - my ( $val, $msg ) = $group->_Create( - Type => $name, - Domain => 'RT::System-Role', - Description => 'SystemRolegroup for internal use', # loc - Name => '', - Instance => '', - ); - return ($val, $msg) unless $val; - } - - push @warns, "You appear to have a functional RT database." - if @warns; - - return (1, join "\n", @warns); } -=head2 InsertData - -Load some sort of data into the database, takes path to a file. - -=cut - -sub InsertData { - my $self = shift; - my $datafile = shift; - - # Slurp in stuff to insert from the datafile. Possible things to go in here:- - our (@Groups, @Users, @ACL, @Queues, @ScripActions, @ScripConditions, - @Templates, @CustomFields, @Scrips, @Attributes, @Initial, @Final); - local (@Groups, @Users, @ACL, @Queues, @ScripActions, @ScripConditions, - @Templates, @CustomFields, @Scrips, @Attributes, @Initial, @Final); - - local $@; - $RT::Logger->debug("Going to load '$datafile' data file"); - eval { require $datafile } - or return (0, "Couldn't load data from '$datafile' for import:\n\nERROR:". $@); - - if ( @Initial ) { - $RT::Logger->debug("Running initial actions..."); - foreach ( @Initial ) { - local $@; - eval { $_->(); 1 } or return (0, "One of initial functions failed: $@"); - } - $RT::Logger->debug("Done."); - } - if ( @Groups ) { - $RT::Logger->debug("Creating groups..."); - foreach my $item (@Groups) { - my $new_entry = RT::Group->new( $RT::SystemUser ); - my $member_of = delete $item->{'MemberOf'}; - my ( $return, $msg ) = $new_entry->_Create(%$item); - unless ( $return ) { - $RT::Logger->error( $msg ); - next; - } else { - $RT::Logger->debug($return ."."); - } - if ( $member_of ) { - $member_of = [ $member_of ] unless ref $member_of eq 'ARRAY'; - foreach( @$member_of ) { - my $parent = RT::Group->new($RT::SystemUser); - if ( ref $_ eq 'HASH' ) { - $parent->LoadByCols( %$_ ); - } - elsif ( !ref $_ ) { - $parent->LoadUserDefinedGroup( $_ ); - } - else { - $RT::Logger->error( - "(Error: wrong format of MemberOf field." - ." Should be name of user defined group or" - ." hash reference with 'column => value' pairs." - ." Use array reference to add to multiple groups)" - ); - next; - } - unless ( $parent->Id ) { - $RT::Logger->error("(Error: couldn't load group to add member)"); - next; - } - my ( $return, $msg ) = $parent->AddMember( $new_entry->Id ); - unless ( $return ) { - $RT::Logger->error( $msg ); - } else { - $RT::Logger->debug( $return ."." ); - } - } - } - } - $RT::Logger->debug("done."); - } - if ( @Users ) { - $RT::Logger->debug("Creating users..."); - foreach my $item (@Users) { - my $new_entry = new RT::User( $RT::SystemUser ); - my ( $return, $msg ) = $new_entry->Create(%$item); - unless ( $return ) { - $RT::Logger->error( $msg ); - } else { - $RT::Logger->debug( $return ."." ); - } - } - $RT::Logger->debug("done."); - } - if ( @Queues ) { - $RT::Logger->debug("Creating queues..."); - for my $item (@Queues) { - my $new_entry = new RT::Queue($RT::SystemUser); - my ( $return, $msg ) = $new_entry->Create(%$item); - unless ( $return ) { - $RT::Logger->error( $msg ); - } else { - $RT::Logger->debug( $return ."." ); - } - } - $RT::Logger->debug("done."); - } - if ( @CustomFields ) { - $RT::Logger->debug("Creating custom fields..."); - for my $item ( @CustomFields ) { - my $new_entry = new RT::CustomField( $RT::SystemUser ); - my $values = delete $item->{'Values'}; - - my @queues; - # if ref then it's list of queues, so we do things ourself - if ( exists $item->{'Queue'} && ref $item->{'Queue'} ) { - $item->{'LookupType'} ||= 'RT::Queue-RT::Ticket'; - @queues = @{ delete $item->{'Queue'} }; - } - - my ( $return, $msg ) = $new_entry->Create(%$item); - unless( $return ) { - $RT::Logger->error( $msg ); - next; - } - - foreach my $value ( @{$values} ) { - my ( $return, $msg ) = $new_entry->AddValue(%$value); - $RT::Logger->error( $msg ) unless $return; - } - - # apply by default - if ( !@queues && !exists $item->{'Queue'} && $item->{LookupType} ) { - my $ocf = RT::ObjectCustomField->new($RT::SystemUser); - $ocf->Create( CustomField => $new_entry->Id ); - } - - for my $q (@queues) { - my $q_obj = RT::Queue->new($RT::SystemUser); - $q_obj->Load($q); - unless ( $q_obj->Id ) { - $RT::Logger->error("Could not find queue ". $q ); - next; - } - my $OCF = RT::ObjectCustomField->new($RT::SystemUser); - ( $return, $msg ) = $OCF->Create( - CustomField => $new_entry->Id, - ObjectId => $q_obj->Id, - ); - $RT::Logger->error( $msg ) unless $return and $OCF->Id; - } - } - - $RT::Logger->debug("done."); - } - if ( @ACL ) { - $RT::Logger->debug("Creating ACL..."); - for my $item (@ACL) { - - my ($princ, $object); - - # Global rights or Queue rights? - if ( $item->{'CF'} ) { - $object = RT::CustomField->new( $RT::SystemUser ); - my @columns = ( Name => $item->{'CF'} ); - push @columns, Queue => $item->{'Queue'} if $item->{'Queue'} and not ref $item->{'Queue'}; - $object->LoadByName( @columns ); - } elsif ( $item->{'Queue'} ) { - $object = RT::Queue->new($RT::SystemUser); - $object->Load( $item->{'Queue'} ); - } else { - $object = $RT::System; - } - - $RT::Logger->error("Couldn't load object") and next unless $object and $object->Id; - - # Group rights or user rights? - if ( $item->{'GroupDomain'} ) { - $princ = RT::Group->new($RT::SystemUser); - if ( $item->{'GroupDomain'} eq 'UserDefined' ) { - $princ->LoadUserDefinedGroup( $item->{'GroupId'} ); - } elsif ( $item->{'GroupDomain'} eq 'SystemInternal' ) { - $princ->LoadSystemInternalGroup( $item->{'GroupType'} ); - } elsif ( $item->{'GroupDomain'} eq 'RT::System-Role' ) { - $princ->LoadSystemRoleGroup( $item->{'GroupType'} ); - } elsif ( $item->{'GroupDomain'} eq 'RT::Queue-Role' && - $item->{'Queue'} ) - { - $princ->LoadQueueRoleGroup( Type => $item->{'GroupType'}, - Queue => $object->id); - } else { - $princ->Load( $item->{'GroupId'} ); - } - } else { - $princ = RT::User->new($RT::SystemUser); - $princ->Load( $item->{'UserId'} ); - } - - # Grant it - my ( $return, $msg ) = $princ->PrincipalObj->GrantRight( - Right => $item->{'Right'}, - Object => $object - ); - unless ( $return ) { - $RT::Logger->error( $msg ); - } - else { - $RT::Logger->debug( $return ."." ); - } - } - $RT::Logger->debug("done."); - } - - if ( @ScripActions ) { - $RT::Logger->debug("Creating ScripActions..."); - - for my $item (@ScripActions) { - my $new_entry = RT::ScripAction->new($RT::SystemUser); - my ( $return, $msg ) = $new_entry->Create(%$item); - unless ( $return ) { - $RT::Logger->error( $msg ); - } - else { - $RT::Logger->debug( $return ."." ); - } - } - - $RT::Logger->debug("done."); - } - - if ( @ScripConditions ) { - $RT::Logger->debug("Creating ScripConditions..."); - - for my $item (@ScripConditions) { - my $new_entry = RT::ScripCondition->new($RT::SystemUser); - my ( $return, $msg ) = $new_entry->Create(%$item); - unless ( $return ) { - $RT::Logger->error( $msg ); - } - else { - $RT::Logger->debug( $return ."." ); - } - } - - $RT::Logger->debug("done."); - } - - if ( @Templates ) { - $RT::Logger->debug("Creating templates..."); - - for my $item (@Templates) { - my $new_entry = new RT::Template($RT::SystemUser); - my ( $return, $msg ) = $new_entry->Create(%$item); - unless ( $return ) { - $RT::Logger->error( $msg ); - } - else { - $RT::Logger->debug( $return ."." ); - } - } - $RT::Logger->debug("done."); - } - if ( @Scrips ) { - $RT::Logger->debug("Creating scrips..."); - - for my $item (@Scrips) { - my $new_entry = new RT::Scrip($RT::SystemUser); - - my @queues = ref $item->{'Queue'} eq 'ARRAY'? @{ $item->{'Queue'} }: $item->{'Queue'} || 0; - push @queues, 0 unless @queues; # add global queue at least - - foreach my $q ( @queues ) { - my ( $return, $msg ) = $new_entry->Create( %$item, Queue => $q ); - unless ( $return ) { - $RT::Logger->error( $msg ); - } - else { - $RT::Logger->debug( $return ."." ); - } - } - } - $RT::Logger->debug("done."); - } - if ( @Attributes ) { - $RT::Logger->debug("Creating predefined searches..."); - my $sys = RT::System->new($RT::SystemUser); - - for my $item (@Attributes) { - my $obj = delete $item->{Object}; # XXX: make this something loadable - $obj ||= $sys; - my ( $return, $msg ) = $obj->AddAttribute (%$item); - unless ( $return ) { - $RT::Logger->error( $msg ); - } - else { - $RT::Logger->debug( $return ."." ); - } - } - $RT::Logger->debug("done."); - } - if ( @Final ) { - $RT::Logger->debug("Running final actions..."); - for ( @Final ) { - local $@; - eval { $_->(); }; - $RT::Logger->error( "Failed to run one of final actions: $@" ) - if $@; - } - $RT::Logger->debug("done."); - } - - my $db_type = RT->Config->Get('DatabaseType'); - $RT::Handle->Disconnect() unless $db_type eq 'SQLite'; - - $RT::Logger->debug("Done setting up database content."); - -# TODO is it ok to return 1 here? If so, the previous codes in this sub -# should return (0, $msg) if error happens instead of just warning. -# anyway, we need to return something here to tell if everything is ok - return( 1, 'Done inserting data' ); -} - -=head2 ACLEquivGroupId - -Given a userid, return that user's acl equivalence group - -=cut - -sub ACLEquivGroupId { - my $id = shift; - - my $cu = $RT::SystemUser; - unless ( $cu ) { - require RT::CurrentUser; - $cu = new RT::CurrentUser; - $cu->LoadByName('RT_System'); - warn "Couldn't load RT_System user" unless $cu->id; - } - - my $equiv_group = RT::Group->new( $cu ); - $equiv_group->LoadACLEquivalenceGroup( $id ); - return $equiv_group->Id; -} - -__PACKAGE__->FinalizeDatabaseType; - eval "require RT::Handle_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Handle_Vendor.pm}); eval "require RT::Handle_Local"; diff --git a/rt/lib/RT/I18N/en_malkovich.po b/rt/lib/RT/I18N/en_malkovich.po deleted file mode 100644 index 74769f1a3..000000000 --- a/rt/lib/RT/I18N/en_malkovich.po +++ /dev/null @@ -1,3973 +0,0 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: html/Approvals/Elements/Approve:26 html/Approvals/Elements/ShowDependency:49 html/SelfService/Display.html:24 html/Ticket/Display.html:25 html/Ticket/Display.html:29 -#. ($TicketObj->Id, $TicketObj->Subject) -#. ($Ticket->id, $Ticket->Subject) -#. ($ticket->Id, $ticket->Subject) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "#%1: %2" -msgstr "#%1: %2" - -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 -#. ($s, $time_unit) -#. ($option, $subtype) -msgid "%1 %2" -msgstr "%1 %2" - -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) -msgid "%1 %2 %3" -msgstr "%1 %2 %3" - -#: lib/RT/Date.pm:373 -#. ($self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)) -msgid "%1 %2 %3 %4:%5:%6 %7" -msgstr "%1 %2 %3 %4:%5:%6 %7" - -#: lib/RT/Ticket_Overlay.pm:3451 lib/RT/Transaction_Overlay.pm:550 lib/RT/Transaction_Overlay.pm:593 -#. ($cf->Name, $new_value->Content) -#. ($field, $self->NewValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 added" -msgstr "%1 %2 Malkovich" - -#: lib/RT/Date.pm:334 -#. ($s, $time_unit) -msgid "%1 %2 ago" -msgstr "%1 %2 ago" - -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) -#. ($field, $self->OldValue, $self->NewValue) -msgid "%1 %2 changed to %3" -msgstr "%1 %2 Malkovich to %3" - -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) -#. ($field, $self->OldValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 deleted" -msgstr "%1 %2 Malkovich" - -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) -#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) -msgid "%1 %2 with template %3" -msgstr "%1 %2 Malkovich %3" - -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 -#. ("--search-argument", "--search") -#. ("--condition-argument", "--condition") -#. ("--action-argument", "--action") -msgid "%1 - An argument to pass to %2" -msgstr "%1 - A Malkovich to pass to %2" - -#: bin/rt-crontool:181 -#. ("--verbose") -msgid "%1 - Output status updates to STDOUT" -msgstr "%1 - Malkovich Malkovich to MALKOVICH" - -#: bin/rt-crontool:175 -#. ("--action") -msgid "%1 - Specify the action module you want to use" -msgstr "%1 - Malkovich the Malkovich Malkovich to use" - -#: bin/rt-crontool:169 -#. ("--condition") -msgid "%1 - Specify the condition module you want to use" -msgstr "%1 - Malkovich the Malkovich Malkovich to use" - -#: bin/rt-crontool:162 -#. ("--search") -msgid "%1 - Specify the search module you want to use" -msgstr "%1 - Malkovich the Malkovich Malkovich to use" - -#: lib/RT/ScripAction_Overlay.pm:114 -#. ($self->Id) -msgid "%1 ScripAction loaded" -msgstr "%1 Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3484 -#. ($args{'Value'}, $cf->Name) -msgid "%1 added as a value for %2" -msgstr "%1 Malkovich as a Malkovich %2" - -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 -#. ($args{'Base'}) -#. ($args{'Target'}) -msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "%1 Malkovich to be a Malkovich, but can't be Malkovich in the Malkovich" - -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:458 -#. ($self->BriefDescription , $self->CreatorObj->Name) -#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) -msgid "%1 by %2" -msgstr "%1 by %2" - -#: lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:688 lib/RT/Transaction_Overlay.pm:697 lib/RT/Transaction_Overlay.pm:700 -#. ($self->Field , ( $self->OldValue || $no_value ) , $self->NewValue) -#. ($self->Field , $q1->Name , $q2->Name) -#. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) -msgid "%1 changed from %2 to %3" -msgstr "%1 Malkovich %2 to %3" - -#: lib/RT/Record.pm:739 -msgid "%1 could not be set to %2." -msgstr "%1 Malkovich be set to %2." - -#: lib/RT/Ticket_Overlay.pm:2739 -#. ($self) -msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." -msgstr "%1 couldn't Malkovich to Malkovich. RT's Malkovich be Malkovich." - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I own..." -msgstr "%1 Malkovich Malkovich I Malkovich..." - -#: html/Elements/MyTickets:26 -#. ($rows) -msgid "%1 highest priority tickets I requested..." -msgstr "%1 Malkovich Malkovich I Malkovich..." - -#: bin/rt-crontool:157 -#. ($0) -msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." -msgstr "%1 is a tool to act on Malkovich a Malkovich Malkovich, such as cron." - -#: lib/RT/Queue_Overlay.pm:784 -#. ($principal->Object->Name, $args{'Type'}) -msgid "%1 is no longer a %2 for this queue." -msgstr "%1 is no Malkovich a %2 Malkovich." - -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) -msgid "%1 is no longer a value for custom field %2" -msgstr "%1 is no Malkovich a Malkovich Malkovich %2" - -#: html/Ticket/Create.html:155 html/Ticket/Create.html:156 html/Ticket/Elements/ShowBasics:36 html/Ticket/Elements/ShowBasics:42 html/Ticket/Elements/ShowBasics:47 -#. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') -#. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') -#. ($Ticket->TimeEstimated) -#. ($Ticket->TimeWorked) -#. ($Ticket->TimeLeft) -msgid "%1 min" -msgstr "%1 min" - -#: html/User/Elements/DelegateRights:75 -#. (loc($ObjectType =~ /^RT::(.*)$/)) -msgid "%1 rights" -msgstr "%1 Malkovich" - -#: lib/RT/Action/ResolveMembers.pm:41 -#. (ref $self) -msgid "%1 will resolve all members of a resolved group ticket." -msgstr "%1 Malkovich Malkovich of a Malkovich Malkovich." - -#: lib/RT/Transaction_Overlay.pm:408 -#. ($self) -msgid "%1: no attachment specified" -msgstr "%1: no Malkovich Malkovich" - -#: html/Ticket/Elements/ShowTransactionAttachments:56 -#. ($size) -msgid "%1b" -msgstr "%1b" - -#: html/Ticket/Elements/ShowTransactionAttachments:53 -#. (int( $size / 102.4 ) / 10) -msgid "%1k" -msgstr "%1k" - -#: lib/RT/Ticket_Overlay.pm:1252 -#. ($args{'Status'}) -msgid "'%1' is an invalid value for status" -msgstr "'%1' is a Malkovich Malkovich" - -#: html/Admin/Elements/EditCustomFieldValues:24 html/Admin/Elements/EditQueueWatchers:28 html/Admin/Elements/EditScrips:34 html/Admin/Elements/EditTemplates:35 html/Admin/Groups/Members.html:51 html/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 -msgid "(Check box to delete)" -msgstr "(Malkovich to Malkovich)" - -#: html/Ticket/Elements/PreviewScrips:49 -msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "(Malkovich to Malkovich Malkovich to the Malkovich Malkovich)" - -#: html/Ticket/Elements/PreviewScrips:71 -msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "(Malkovich to Malkovich Malkovich to the Malkovich Malkovich)" - -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" -msgstr "(Malkovich Malkovich or URLs, Malkovich Malkovich)" - -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 -#. ($RT::CorrespondAddress) -#. ($RT::CommentAddress) -msgid "(If left blank, will default to %1" -msgstr "(If Malkovich, Malkovich to %1" - -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 -msgid "(No custom fields)" -msgstr "(No Malkovich)" - -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 -msgid "(No members)" -msgstr "(No Malkovich)" - -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 -msgid "(No scrips)" -msgstr "(No Malkovich)" - -#: html/Admin/Elements/EditTemplates:30 -msgid "(No templates)" -msgstr "(No Malkovich)" - -#: html/Ticket/Update.html:66 -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will receive future updates.)" -msgstr "(Malkovich a Malkovich-copy of Malkovich to a Malkovich-Malkovich of Malkovich. Does <b>not</b> Malkovich Malkovich Malkovich Malkovich.)" - -#: html/Ticket/Create.html:78 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <b>will</b> receive future updates.)" -msgstr "(Malkovich a Malkovich-copy of Malkovich to a Malkovich-Malkovich of Malkovich Malkovich Malkovich. Malkovich <b>will</b> Malkovich Malkovich.)" - -#: html/Ticket/Update.html:62 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will receive future updates.)" -msgstr "(Malkovich a Malkovich-copy of Malkovich to a Malkovich-Malkovich of Malkovich. Does <b>not</b> Malkovich Malkovich Malkovich Malkovich.)" - -#: html/Ticket/Create.html:68 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people <b>will</b> receive future updates.)" -msgstr "(Malkovich a Malkovich-copy of Malkovich to a Malkovich-Malkovich of Malkovich. Malkovich <b>will</b> Malkovich Malkovich.)" - -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 -msgid "(empty)" -msgstr "(Malkovich)" - -#: html/Admin/Users/index.html:38 -msgid "(no name listed)" -msgstr "(no Malkovich)" - -#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:64 html/Ticket/Elements/ShowCustomFields:35 lib/RT/Transaction_Overlay.pm:511 -msgid "(no value)" -msgstr "(no Malkovich)" - -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 -msgid "(only one ticket)" -msgstr "(Malkovich)" - -#: html/Elements/TicketList:167 -msgid "(pending approval)" -msgstr "(Malkovich Malkovich)" - -#: html/Elements/TicketList:170 -msgid "(pending other Collection)" -msgstr "(Malkovich Malkovich)" - -#: NOT FOUND IN SOURCE -msgid "(pending other tickets)" -msgstr "(Malkovich Malkovich)" - -#: html/Admin/Users/Modify.html:49 -msgid "(required)" -msgstr "(Malkovich)" - -#: html/Ticket/Elements/ShowTransactionAttachments:60 -msgid "(untitled)" -msgstr "(Malkovich)" - -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "..." - -#: html/Ticket/Elements/ShowBasics:31 -msgid "<% $Ticket->Status%>" -msgstr "<% $Ticket->Status %>" - -#: html/Elements/SelectTicketTypes:26 -msgid "<% $_ %>" -msgstr "<% $_ %>" - -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" value=\"New ticket in\"> %1" -msgstr "<input type=\"submit\" value=\"Malkovich in\"> %1" - -#: etc/initialdata:218 -msgid "A blank template" -msgstr "A Malkovich" - -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 -msgid "ACE not found" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:830 -msgid "ACEs can only be created and deleted." -msgstr "Malkovich be Malkovich and Malkovich." - -#: NOT FOUND IN SOURCE -msgid "Aborting to avoid unintended ticket modifications.\\n" -msgstr "Malkovich to Malkovich Malkovich Malkovich Malkovich.\\n" - -#: html/User/Elements/Tabs:31 -msgid "About me" -msgstr "Malkovich me" - -#: html/Admin/Users/Modify.html:79 -msgid "Access control" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrip:49 -msgid "Action" -msgstr "Malkovich" - -#: lib/RT/Scrip_Overlay.pm:148 -#. ($args{'ScripAction'}) -msgid "Action %1 not found" -msgstr "Malkovich %1 Malkovich" - -#: bin/rt-crontool:119 -msgid "Action committed." -msgstr "Malkovich Malkovich." - -#: bin/rt-crontool:115 -msgid "Action prepared..." -msgstr "Malkovich..." - -#: html/Search/Bulk.html:93 -msgid "Add AdminCc" -msgstr "Malkovich" - -#: html/Search/Bulk.html:89 -msgid "Add Cc" -msgstr "Add Cc" - -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 -msgid "Add More Files" -msgstr "Malkovich" - -#: html/Search/Bulk.html:85 -msgid "Add Requestor" -msgstr "Malkovich" - -#: html/Admin/Elements/AddCustomFieldValue:24 -msgid "Add Value" -msgstr "Malkovich" - -#: html/Admin/Global/Scrip.html:54 -msgid "Add a scrip which will apply to all queues" -msgstr "Add a Malkovich Malkovich to Malkovich" - -#: html/Search/Bulk.html:125 -msgid "Add comments or replies to selected tickets" -msgstr "Malkovich or Malkovich to Malkovich Malkovich" - -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 -msgid "Add members" -msgstr "Malkovich" - -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 -msgid "Add new watchers" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:684 -#. ($args{'Type'}) -msgid "Added principal as a %1 for this queue" -msgstr "Malkovich as a %1 Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1547 -#. ($self->loc($args{'Type'})) -msgid "Added principal as a %1 for this ticket" -msgstr "Malkovich as a %1 Malkovich" - -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 -msgid "Address1" -msgstr "Malkovich1" - -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 -msgid "Address2" -msgstr "Malkovich2" - -#: html/Ticket/Create.html:73 -msgid "Admin Cc" -msgstr "Malkovich Cc" - -#: etc/initialdata:295 -msgid "Admin Comment" -msgstr "Malkovich" - -#: etc/initialdata:274 -msgid "Admin Correspondence" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 -msgid "Admin queues" -msgstr "Malkovich" - -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 -msgid "Admin/Global configuration" -msgstr "Malkovich/Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Admin/Queue/Basics" -msgstr "Malkovich/Malkovich/Malkovich" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 -msgid "AdminCc" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:73 -msgid "AdminCustomFields" -msgstr "Malkovich Malkovich" - -#: lib/RT/Group_Overlay.pm:146 -msgid "AdminGroup" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:148 -msgid "AdminGroupMembership" -msgstr "Malkovich Malkovich" - -#: lib/RT/System.pm:58 -msgid "AdminOwnPersonalGroups" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:69 -msgid "AdminQueue" -msgstr "Malkovich" - -#: lib/RT/System.pm:59 -msgid "AdminUsers" -msgstr "Malkovich" - -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 -msgid "Administrative Cc" -msgstr "Malkovich Cc" - -#: html/Elements/SelectDateRelation:35 -msgid "After" -msgstr "Malkovich" - -#: etc/initialdata:363 -msgid "All Approvals Passed" -msgstr "Malkovich Malkovich" - -#: html/Admin/Elements/EditCustomFields:94 -msgid "All Custom Fields" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/index.html:52 -msgid "All Queues" -msgstr "Malkovich" - -#: html/Elements/Tabs:58 -msgid "Approval" -msgstr "Malkovich" - -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 -#. ($Ticket->Id, $Ticket->Subject) -#. ($ticket->id, $msg) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Approval #%1: %2" -msgstr "Malkovich #%1: %2" - -#: html/Approvals/index.html:53 -#. ($ticket->Id) -msgid "Approval #%1: Notes not recorded due to a system error" -msgstr "Malkovich #%1: Malkovich Malkovich to a Malkovich" - -#: html/Approvals/index.html:51 -#. ($ticket->Id) -msgid "Approval #%1: Notes recorded" -msgstr "Malkovich #%1: Malkovich" - -#: etc/initialdata:351 -msgid "Approval Passed" -msgstr "Malkovich" - -#: etc/initialdata:374 -msgid "Approval Rejected" -msgstr "Malkovich Malkovich" - -#: html/Approvals/Elements/Approve:43 -msgid "Approve" -msgstr "Malkovich" - -#: etc/initialdata:504 -msgid "Approver's notes: %1" -msgstr "Malkovich's Malkovich: %1" - -#: lib/RT/Date.pm:414 -msgid "Apr." -msgstr "Apr." - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 -msgid "Ascending" -msgstr "Malkovich" - -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 -msgid "Attach" -msgstr "Malkovich" - -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 -msgid "Attach file" -msgstr "Malkovich" - -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 -msgid "Attached file" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:416 -msgid "Attachment created" -msgstr "Malkovich Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1251 -msgid "Attachment filename" -msgstr "Malkovich Malkovich" - -#: html/Ticket/Elements/ShowAttachments:25 -msgid "Attachments" -msgstr "Malkovich" - -#: lib/RT/Attributes_Overlay.pm:158 -msgid "Attribute Deleted" -msgstr "Malkovich Malkovich" - -#: lib/RT/Date.pm:418 -msgid "Aug." -msgstr "Aug." - -#: NOT FOUND IN SOURCE -msgid "AuthSystem" -msgstr "Malkovich" - -#: etc/initialdata:221 -msgid "Autoreply" -msgstr "Malkovich" - -#: etc/initialdata:72 -msgid "Autoreply To Requestors" -msgstr "Malkovich To Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Bad data in %1" -msgstr "Malkovich in %1" - -#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Ticket/Elements/Tabs:91 html/User/Elements/GroupTabs:37 -msgid "Basics" -msgstr "Malkovich" - -#: html/Ticket/Update.html:64 -msgid "Bcc" -msgstr "Bcc" - -#: html/Admin/Elements/EditScrip:73 -msgid "Be sure to save your changes" -msgstr "Be sure to Malkovich Malkovich" - -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 -msgid "Before" -msgstr "Malkovich" - -#: etc/initialdata:217 -msgid "Blank" -msgstr "Malkovich" - -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 -msgid "Brief headers" -msgstr "Malkovich" - -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 -msgid "Bulk ticket update" -msgstr "Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:1533 -msgid "Can not modify system users" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:68 -msgid "Can this principal see this queue" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:211 -msgid "Can't add a custom field value without a name" -msgstr "Can't add a Malkovich Malkovich Malkovich a name" - -#: lib/RT/Link_Overlay.pm:126 -msgid "Can't link a ticket to itself" -msgstr "Can't link a Malkovich to Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2716 -msgid "Can't merge into a merged ticket. You should never get this error" -msgstr "Can't Malkovich a Malkovich. Malkovich Malkovich Malkovich" - -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 -msgid "Can't specifiy both base and target" -msgstr "Can't Malkovich Malkovich and Malkovich" - -#: html/autohandler:132 -#. ($msg) -msgid "Cannot create user: %1" -msgstr "Malkovich Malkovich: %1" - -#: etc/initialdata:50 html/Admin/Queues/People.html:43 html/SelfService/Create.html:48 html/Ticket/Create.html:63 html/Ticket/Elements/EditPeople:50 html/Ticket/Elements/ShowPeople:34 html/Ticket/Update.html:59 lib/RT/ACE_Overlay.pm:87 -msgid "Cc" -msgstr "Cc" - -#: html/SelfService/Prefs.html:30 -msgid "Change password" -msgstr "Malkovich" - -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 -msgid "Check box to delete" -msgstr "Malkovich to Malkovich" - -#: html/Admin/Elements/SelectRights:30 -msgid "Check box to revoke right" -msgstr "Malkovich to Malkovich" - -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 -msgid "Children" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 -msgid "City" -msgstr "City" - -#: html/Ticket/Elements/ShowDates:47 -msgid "Closed" -msgstr "Malkovich" - -#: html/SelfService/Closed.html:24 -msgid "Closed Tickets" -msgstr "Malkovich" - -#: html/SelfService/Elements/Tabs:44 -msgid "Closed tickets" -msgstr "Malkovich" - -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 -msgid "Comment" -msgstr "Malkovich" - -#: html/Admin/Queues/Modify.html:57 -msgid "Comment Address" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:88 -msgid "Comment on tickets" -msgstr "Malkovich on Malkovich" - -#: lib/RT/Queue_Overlay.pm:88 -msgid "CommentOnTicket" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Comments" -msgstr "Malkovich" - -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 -msgid "Comments (Not sent to requestors)" -msgstr "Malkovich (Malkovich to Malkovich)" - -#: html/Search/Bulk.html:129 -msgid "Comments (not sent to requestors)" -msgstr "Malkovich (Malkovich to Malkovich)" - -#: NOT FOUND IN SOURCE -msgid "Comments about %1" -msgstr "Malkovich %1" - -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 -msgid "Comments about this user" -msgstr "Malkovich Malkovich" - -#: lib/RT/Transaction_Overlay.pm:537 -msgid "Comments added" -msgstr "Malkovich" - -#: lib/RT/Action/Generic.pm:149 -msgid "Commit Stubbed" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrip:41 -msgid "Condition" -msgstr "Malkovich" - -#: bin/rt-crontool:105 -msgid "Condition matches..." -msgstr "Malkovich Malkovich..." - -#: lib/RT/Scrip_Overlay.pm:164 -msgid "Condition not found" -msgstr "Malkovich Malkovich" - -#: html/Elements/Tabs:52 -msgid "Configuration" -msgstr "Malkovich" - -#: html/SelfService/Prefs.html:32 -msgid "Confirm" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "ContactInfoSystem" -msgstr "Malkovich Malkovich" - -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 -msgid "Content" -msgstr "Malkovich" - -#: etc/initialdata:286 -msgid "Correspondence" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Correspondence Address" -msgstr "Malkovich Malkovich" - -#: lib/RT/Transaction_Overlay.pm:533 -msgid "Correspondence added" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3471 -msgid "Could not add new custom field value for ticket. " -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich. " - -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 -msgid "Could not change owner. " -msgstr "Malkovich Malkovich. " - -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 -#. ($msg) -msgid "Could not create CustomField" -msgstr "Malkovich Malkovich Malkovich" - -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 -msgid "Could not create group" -msgstr "Malkovich Malkovich" - -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 -#. ($msg) -msgid "Could not create template: %1" -msgstr "Malkovich Malkovich: %1" - -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 -msgid "Could not create ticket. Queue not set" -msgstr "Malkovich Malkovich. Malkovich" - -#: lib/RT/User_Overlay.pm:226 lib/RT/User_Overlay.pm:240 lib/RT/User_Overlay.pm:249 lib/RT/User_Overlay.pm:258 lib/RT/User_Overlay.pm:267 lib/RT/User_Overlay.pm:281 lib/RT/User_Overlay.pm:291 lib/RT/User_Overlay.pm:462 -msgid "Could not create user" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 -msgid "Could not find or create that user" -msgstr "Malkovich or Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 -msgid "Could not find that principal" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 -msgid "Could not load group" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:682 -#. ($args{'Type'}) -msgid "Could not make that principal a %1 for this queue" -msgstr "Malkovich Malkovich Malkovich a %1 Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1536 -#. ($self->loc($args{'Type'})) -msgid "Could not make that principal a %1 for this ticket" -msgstr "Malkovich Malkovich Malkovich a %1 Malkovich" - -#: lib/RT/Queue_Overlay.pm:781 -#. ($args{'Type'}) -msgid "Could not remove that principal as a %1 for this queue" -msgstr "Malkovich Malkovich Malkovich as a %1 Malkovich" - -#: lib/RT/Group_Overlay.pm:977 -msgid "Couldn't add member to group" -msgstr "Couldn't Malkovich to Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 -#. ($Msg) -msgid "Couldn't create a transaction: %1" -msgstr "Couldn't Malkovich a Malkovich: %1" - -#: lib/RT/Record.pm:748 -msgid "Couldn't find row" -msgstr "Couldn't Malkovich" - -#: lib/RT/Group_Overlay.pm:951 -msgid "Couldn't find that principal" -msgstr "Couldn't Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:245 -msgid "Couldn't find that value" -msgstr "Couldn't Malkovich" - -#: lib/RT/CurrentUser.pm:123 -#. ($self->Id) -msgid "Couldn't load %1 from the users database.\\n" -msgstr "Couldn't load %1 from the Malkovich.\\n" - -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 -#. ($id) -msgid "Couldn't load group %1" -msgstr "Couldn't Malkovich %1" - -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 -msgid "Couldn't load link" -msgstr "Couldn't Malkovich" - -#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 -#. ($id) -msgid "Couldn't load queue" -msgstr "Couldn't Malkovich" - -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 -#. ($id) -msgid "Couldn't load queue %1" -msgstr "Couldn't Malkovich %1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load that user (%1)" -msgstr "Couldn't Malkovich (%1)" - -#: html/SelfService/Display.html:116 -#. ($id) -msgid "Couldn't load ticket '%1'" -msgstr "Couldn't Malkovich '%1'" - -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 -msgid "Country" -msgstr "Malkovich" - -#: html/Admin/Elements/CreateUserCalled:25 html/Admin/Elements/EditCustomField:62 html/Admin/Elements/EditScrip:110 html/Admin/Groups/Modify.html:55 html/Admin/Queues/Template.html:44 html/Elements/QuickCreate:23 html/Ticket/Create.html:134 html/Ticket/Create.html:195 html/User/Groups/Modify.html:55 -msgid "Create" -msgstr "Malkovich" - -#: etc/initialdata:135 -msgid "Create Tickets" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomField:74 -msgid "Create a CustomField" -msgstr "Malkovich a Malkovich" - -#: html/Admin/Queues/CustomField.html:47 -#. ($QueueObj->Name()) -msgid "Create a CustomField for queue %1" -msgstr "Malkovich a Malkovich Malkovich %1" - -#: html/Admin/Global/CustomField.html:47 -msgid "Create a CustomField which applies to all queues" -msgstr "Malkovich a Malkovich Malkovich to Malkovich" - -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 -msgid "Create a new group" -msgstr "Malkovich a Malkovich" - -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 -msgid "Create a new personal group" -msgstr "Malkovich a Malkovich Malkovich" - -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 -msgid "Create a new ticket" -msgstr "Malkovich a Malkovich" - -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 -msgid "Create a new user" -msgstr "Malkovich a Malkovich" - -#: html/Admin/Queues/Modify.html:103 -msgid "Create a queue" -msgstr "Malkovich a Malkovich" - -#: html/Admin/Queues/Scrip.html:58 -#. ($QueueObj->Name) -msgid "Create a scrip for queue %1" -msgstr "Malkovich a Malkovich %1" - -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 -msgid "Create a template" -msgstr "Malkovich a Malkovich" - -#: html/SelfService/Create.html:24 -msgid "Create a ticket" -msgstr "Malkovich a Malkovich" - -#: etc/initialdata:137 -msgid "Create new tickets based on this scrip's template" -msgstr "Malkovich Malkovich on Malkovich's Malkovich" - -#: html/SelfService/Create.html:77 -msgid "Create ticket" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:86 -msgid "Create tickets in this queue" -msgstr "Malkovich in Malkovich" - -#: lib/RT/Queue_Overlay.pm:73 -msgid "Create, delete and modify custom fields" -msgstr "Malkovich, Malkovich and Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:69 -msgid "Create, delete and modify queues" -msgstr "Malkovich, Malkovich and Malkovich" - -#: lib/RT/System.pm:58 -msgid "Create, delete and modify the members of personal groups" -msgstr "Malkovich, Malkovich and Malkovich the Malkovich of Malkovich" - -#: lib/RT/System.pm:59 -msgid "Create, delete and modify users" -msgstr "Malkovich, Malkovich and Malkovich" - -#: lib/RT/Queue_Overlay.pm:86 -msgid "CreateTicket" -msgstr "Malkovich" - -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 -msgid "Created" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomField:87 -#. ($CustomFieldObj->Name()) -msgid "Created CustomField %1" -msgstr "Malkovich Malkovich %1" - -#: html/Elements/EditLinks:27 -msgid "Current Links" -msgstr "Malkovich Malkovich" - -#: html/Admin/Elements/EditScrips:29 -msgid "Current Scrips" -msgstr "Malkovich" - -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 -msgid "Current members" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectRights:28 -msgid "Current rights" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Current search criteria" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 -msgid "Current watchers" -msgstr "Malkovich Malkovich" - -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) -msgid "Custom Field #%1" -msgstr "Malkovich #%1" - -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 -msgid "Custom Fields" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrip:101 -msgid "Custom action cleanup code" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Elements/EditScrip:93 -msgid "Custom action preparation code" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Elements/EditScrip:85 -msgid "Custom condition" -msgstr "Malkovich Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) -msgid "Custom field %1 %2 %3" -msgstr "Malkovich %1 %2 %3" - -#: lib/RT/Tickets_Overlay.pm:1688 -#. ($CF->Name) -msgid "Custom field %1 has a value." -msgstr "Malkovich %1 has a Malkovich." - -#: lib/RT/Tickets_Overlay.pm:1685 -#. ($CF->Name) -msgid "Custom field %1 has no value." -msgstr "Malkovich %1 has no Malkovich." - -#: lib/RT/Ticket_Overlay.pm:3373 -#. ($args{'Field'}) -msgid "Custom field %1 not found" -msgstr "Malkovich %1 Malkovich" - -#: html/Admin/Elements/EditCustomFields:195 -msgid "Custom field deleted" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3523 -msgid "Custom field not found" -msgstr "Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:355 -#. ($args{'Content'}, $self->Name) -msgid "Custom field value %1 could not be found for custom field %2" -msgstr "Malkovich Malkovich %1 Malkovich be Malkovich Malkovich %2" - -#: lib/RT/CustomField_Overlay.pm:255 -msgid "Custom field value could not be deleted" -msgstr "Malkovich Malkovich Malkovich be Malkovich" - -#: lib/RT/CustomField_Overlay.pm:361 -msgid "Custom field value could not be found" -msgstr "Malkovich Malkovich Malkovich be Malkovich" - -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 -msgid "Custom field value deleted" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Transaction_Overlay.pm:541 -msgid "CustomField" -msgstr "Malkovich" - -#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:94 html/Ticket/ModifyAll.html:43 -msgid "Dates" -msgstr "Malkovich" - -#: lib/RT/Date.pm:422 -msgid "Dec." -msgstr "Dec." - -#: etc/initialdata:222 -msgid "Default Autoresponse template" -msgstr "Malkovich Malkovich Malkovich" - -#: etc/initialdata:296 -msgid "Default admin comment template" -msgstr "Malkovich Malkovich Malkovich" - -#: etc/initialdata:287 -msgid "Default correspondence template" -msgstr "Malkovich Malkovich Malkovich" - -#: etc/initialdata:253 -msgid "Default transaction template" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) -msgid "Default: %1/%2 changed from %3 to %4" -msgstr "Malkovich: %1/%2 Malkovich %3 to %4" - -#: html/User/Delegation.html:24 html/User/Delegation.html:27 -msgid "Delegate rights" -msgstr "Malkovich" - -#: lib/RT/System.pm:62 -msgid "Delegate specific rights which have been granted to you." -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich to you." - -#: lib/RT/System.pm:62 -msgid "DelegateRights" -msgstr "Malkovich" - -#: html/User/Elements/Tabs:37 -msgid "Delegation" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 -msgid "Delete" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrips:52 -msgid "Delete selected scrips" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "Delete tickets" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "DeleteTicket" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:162 -msgid "Deleting this object could break referential integrity" -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:329 -msgid "Deleting this object would break referential integrity" -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:478 -msgid "Deleting this object would violate referential integrity" -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich Malkovich" - -#: html/Approvals/Elements/Approve:44 -msgid "Deny" -msgstr "Deny" - -#: html/Elements/EditLinks:113 html/Elements/EditLinks:44 html/Elements/ShowLinks:36 html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/ShowDependencies:31 -msgid "Depended on by" -msgstr "Malkovich on by" - -#: lib/RT/Transaction_Overlay.pm:621 -#. ($value) -msgid "Dependency by %1 added" -msgstr "Malkovich by %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:661 -#. ($value) -msgid "Dependency by %1 deleted" -msgstr "Malkovich by %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:618 -#. ($value) -msgid "Dependency on %1 added" -msgstr "Malkovich on %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:658 -#. ($value) -msgid "Dependency on %1 deleted" -msgstr "Malkovich on %1 Malkovich" - -#: html/Elements/EditLinks:109 html/Elements/EditLinks:35 html/Elements/SelectLinkType:26 html/Elements/ShowLinks:26 html/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/ShowDependencies:24 -msgid "Depends on" -msgstr "Malkovich on" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 -msgid "Descending" -msgstr "Malkovich" - -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 -msgid "Describe the issue below" -msgstr "Malkovich the Malkovich" - -#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyTemplate:35 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Elements/SelectGroups:26 html/Search/Elements/EditSearches:8 html/User/Groups/Modify.html:48 -msgid "Description" -msgstr "Malkovich" - -#: html/Ticket/Elements/Tabs:86 -msgid "Display" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:70 -msgid "Display Access Control List" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:76 -msgid "Display Scrip templates for this queue" -msgstr "Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:79 -msgid "Display Scrips for this queue" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Ticket/Elements/ShowHistory:34 -msgid "Display mode" -msgstr "Malkovich" - -#: lib/RT/System.pm:53 -msgid "Do anything and everything" -msgstr "Do Malkovich and Malkovich" - -#: html/Elements/Refresh:29 -msgid "Don't refresh this page." -msgstr "Don't Malkovich Malkovich." - -#: NOT FOUND IN SOURCE -msgid "Don't show search results" -msgstr "Don't Malkovich Malkovich" - -#: html/Ticket/Elements/ShowTransactionAttachments:60 -msgid "Download" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" -msgstr "Malkovich the Malkovich as a Malkovich Malkovich" - -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1283 -msgid "Due" -msgstr "Due" - -#: NOT FOUND IN SOURCE -msgid "ERROR: Couldn't load ticket '%1': %2.\\n" -msgstr "MALKOVICH: Couldn't Malkovich '%1': %2.\\n" - -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) -msgid "Edit Custom Fields for %1" -msgstr "Malkovich Malkovich %1" - -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 -msgid "Edit Links" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/Templates.html:41 -#. ($QueueObj->Name) -msgid "Edit Templates for queue %1" -msgstr "Malkovich Malkovich %1" - -#: html/Admin/Global/index.html:45 -msgid "Edit system templates" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/Modify.html:118 -#. ($QueueObj->Name) -msgid "Editing Configuration for queue %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for user %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: html/Admin/Elements/EditCustomField:90 -#. ($CustomFieldObj->Name()) -msgid "Editing CustomField %1" -msgstr "Malkovich Malkovich %1" - -#: html/Admin/Groups/Members.html:31 -#. ($Group->Name) -msgid "Editing membership for group %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: html/User/Groups/Members.html:128 -#. ($Group->Name) -msgid "Editing membership for personal group %1" -msgstr "Malkovich Malkovich Malkovich Malkovich %1" - -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 -msgid "Either base or target must be specified" -msgstr "Malkovich or Malkovich be Malkovich" - -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 -msgid "Email" -msgstr "Malkovich" - -#: lib/RT/User_Overlay.pm:206 -msgid "Email address in use" -msgstr "Malkovich in use" - -#: NOT FOUND IN SOURCE -msgid "EmailAddress" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "EmailEncoding" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomField:50 -msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "Malkovich (Malkovich Malkovich Malkovich Malkovich Malkovich)" - -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 -msgid "Enabled (Unchecking this box disables this group)" -msgstr "Malkovich (Malkovich Malkovich Malkovich Malkovich)" - -#: html/Admin/Queues/Modify.html:83 -msgid "Enabled (Unchecking this box disables this queue)" -msgstr "Malkovich (Malkovich Malkovich Malkovich Malkovich)" - -#: html/Admin/Elements/EditCustomFields:97 -msgid "Enabled Custom Fields" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/index.html:55 -msgid "Enabled Queues" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:308 html/User/Groups/Modify.html:116 -#. (loc_fuzzy($msg)) -msgid "Enabled status %1" -msgstr "Malkovich %1" - -#: lib/RT/CustomField_Overlay.pm:433 -msgid "Enter multiple values" -msgstr "Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:430 -msgid "Enter one value" -msgstr "Malkovich" - -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." -msgstr "Malkovich or URIs to Malkovich to. Malkovich Malkovich Malkovich Malkovich." - -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 -msgid "Error" -msgstr "Error" - -#: lib/RT/Queue_Overlay.pm:593 -msgid "Error in parameters to Queue->AddWatcher" -msgstr "Malkovich in Malkovich to Malkovich->Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Queue->DelWatcher" -msgstr "Malkovich in Malkovich to Malkovich->Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1468 -msgid "Error in parameters to Ticket->AddWatcher" -msgstr "Malkovich in Malkovich to Malkovich->Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Ticket->DelWatcher" -msgstr "Malkovich in Malkovich to Malkovich->Malkovich" - -#: etc/initialdata:20 -msgid "Everyone" -msgstr "Malkovich" - -#: bin/rt-crontool:190 -msgid "Example:" -msgstr "Malkovich:" - -#: NOT FOUND IN SOURCE -msgid "ExternalAuthId" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "ExternalContactInfoId" -msgstr "Malkovich Malkovich" - -#: html/Admin/Users/Modify.html:72 -msgid "Extra info" -msgstr "Malkovich" - -#: lib/RT/User_Overlay.pm:342 -msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "Malkovich to find 'Malkovich' Malkovich Malkovich." - -#: lib/RT/User_Overlay.pm:349 -msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "Malkovich to find 'Malkovich' Malkovich Malkovich" - -#: bin/rt-crontool:134 -#. ($modname, $@) -msgid "Failed to load module %1. (%2)" -msgstr "Malkovich to Malkovich %1. (%2)" - -#: lib/RT/Date.pm:412 -msgid "Feb." -msgstr "Feb." - -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 -msgid "Final Priority" -msgstr "Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1274 -msgid "FinalPriority" -msgstr "Malkovich" - -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 -msgid "Find group whose" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 -msgid "Find people whose" -msgstr "Malkovich Malkovich" - -#: html/Search/Results.html:72 -msgid "Find tickets" -msgstr "Malkovich" - -#: html/Ticket/Elements/Tabs:59 -msgid "First" -msgstr "Malkovich" - -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 -msgid "Foo Bar Baz" -msgstr "Malkovich" - -#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 -msgid "Foo!" -msgstr "Foo!" - -#: html/Search/Bulk.html:84 -msgid "Force change" -msgstr "Malkovich" - -#: html/Search/Results.html:70 -#. ($ticketcount) -msgid "Found %quant(%1,ticket)" -msgstr "Malkovich %quant(%1,Malkovich)" - -#: lib/RT/Record.pm:750 -msgid "Found Object" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "FreeformContactInfo" -msgstr "Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:37 -msgid "FreeformMultiple" -msgstr "Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:36 -msgid "FreeformSingle" -msgstr "Malkovich" - -#: lib/RT/Date.pm:392 -msgid "Fri." -msgstr "Fri." - -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 -msgid "Full headers" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:587 -#. ($New->Name) -msgid "Given to %1" -msgstr "Malkovich to %1" - -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 -msgid "Global" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectTemplate:37 -#. (loc($Template->Name)) -msgid "Global template: %1" -msgstr "Malkovich: %1" - -#: html/Tools/Offline.html:69 -msgid "Go" -msgstr "Go" - -#: html/Admin/Elements/EditCustomFields:73 html/Admin/Groups/index.html:39 html/Admin/Queues/People.html:58 html/Admin/Queues/People.html:62 html/Admin/Queues/index.html:43 html/Admin/Users/index.html:48 html/Ticket/Elements/EditPeople:31 html/Ticket/Elements/EditPeople:35 html/index.html:69 -msgid "Go!" -msgstr "Go!" - -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 -msgid "Goto ticket" -msgstr "Malkovich" - -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 -msgid "Group" -msgstr "Malkovich" - -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 -msgid "Group Rights" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:957 -msgid "Group already has member" -msgstr "Malkovich Malkovich" - -#: html/Admin/Groups/Modify.html:76 -#. ($create_msg) -msgid "Group could not be created: %1" -msgstr "Malkovich be Malkovich: %1" - -#: lib/RT/Group_Overlay.pm:497 -msgid "Group created" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:1129 -msgid "Group has no such member" -msgstr "Malkovich no Malkovich" - -#: lib/RT/Group_Overlay.pm:937 lib/RT/Queue_Overlay.pm:669 lib/RT/Queue_Overlay.pm:729 lib/RT/Ticket_Overlay.pm:1522 lib/RT/Ticket_Overlay.pm:1602 -msgid "Group not found" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectNewGroupMembers:34 html/Admin/Elements/Tabs:34 html/Admin/Groups/Members.html:63 html/Admin/Queues/People.html:82 html/Admin/index.html:31 html/User/Groups/Members.html:66 -msgid "Groups" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:963 -msgid "Groups can't be members of their members" -msgstr "Malkovich can't be Malkovich of Malkovich" - -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 -msgid "Hello!" -msgstr "Malkovich!" - -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 -#. ($name) -msgid "Hello, %1" -msgstr "Malkovich, %1" - -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 -msgid "History" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "HomePhone" -msgstr "Malkovich" - -#: html/Elements/Tabs:43 -msgid "Homepage" -msgstr "Malkovich" - -#: lib/RT/Base.pm:86 -#. (6) -msgid "I have %quant(%1,concrete mixer)." -msgstr "I have %quant(%1,Malkovich)." - -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 -msgid "Id" -msgstr "Id" - -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 -msgid "Identity" -msgstr "Malkovich" - -#: etc/initialdata:429 -msgid "If an approval is rejected, reject the original and delete pending approvals" -msgstr "If a Malkovich is Malkovich, Malkovich the Malkovich and Malkovich Malkovich" - -#: bin/rt-crontool:186 -msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." -msgstr "If Malkovich Malkovich, a Malkovich Malkovich Malkovich Malkovich to Malkovich Malkovich Malkovich to RT." - -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 -msgid "If you've updated anything above, be sure to" -msgstr "If you've Malkovich Malkovich, be sure to" - -#: lib/RT/Record.pm:742 -msgid "Illegal value for %1" -msgstr "Malkovich Malkovich %1" - -#: lib/RT/Record.pm:745 -msgid "Immutable field" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomFields:72 -msgid "Include disabled custom fields in listing." -msgstr "Malkovich Malkovich Malkovich in Malkovich." - -#: html/Admin/Queues/index.html:42 -msgid "Include disabled queues in listing." -msgstr "Malkovich Malkovich in Malkovich." - -#: html/Admin/Users/index.html:46 -msgid "Include disabled users in search." -msgstr "Malkovich Malkovich in Malkovich." - -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 -msgid "Initial Priority" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 -msgid "InitialPriority" -msgstr "Malkovich" - -#: lib/RT/ScripAction_Overlay.pm:97 -msgid "Input error" -msgstr "Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3797 -msgid "Internal Error" -msgstr "Malkovich" - -#: lib/RT/Record.pm:186 -#. ($id->{error_message}) -msgid "Internal Error: %1" -msgstr "Malkovich: %1" - -#: lib/RT/Group_Overlay.pm:644 -msgid "Invalid Group Type" -msgstr "Malkovich Malkovich" - -#: lib/RT/Principal_Overlay.pm:127 -msgid "Invalid Right" -msgstr "Malkovich" - -#: lib/RT/Record.pm:747 -msgid "Invalid data" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "Malkovich. Malkovich to 'Malkovich'." - -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 -msgid "Invalid queue" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:243 lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:269 lib/RT/ACE_Overlay.pm:274 -msgid "Invalid right" -msgstr "Malkovich" - -#: lib/RT/Record.pm:161 -#. ($key) -msgid "Invalid value for %1" -msgstr "Malkovich Malkovich %1" - -#: lib/RT/Ticket_Overlay.pm:3380 -msgid "Invalid value for custom field" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:385 -msgid "Invalid value for status" -msgstr "Malkovich Malkovich" - -#: bin/rt-crontool:187 -msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." -msgstr "It is Malkovich Malkovich Malkovich Malkovich Malkovich be Malkovich to Malkovich." - -#: bin/rt-crontool:188 -msgid "It is suggested that you create a non-privileged unix user with the correct group membership and RT access to run this tool." -msgstr "It is Malkovich Malkovich a non-Malkovich Malkovich the Malkovich Malkovich and RT Malkovich to Malkovich." - -#: bin/rt-crontool:159 -msgid "It takes several arguments:" -msgstr "It Malkovich Malkovich:" - -#: lib/RT/Date.pm:411 -msgid "Jan." -msgstr "Jan." - -#: lib/RT/Group_Overlay.pm:149 -msgid "Join or leave this group" -msgstr "Join or Malkovich Malkovich" - -#: lib/RT/Date.pm:417 -msgid "Jul." -msgstr "Jul." - -#: html/Ticket/Elements/Tabs:100 -msgid "Jumbo" -msgstr "Malkovich" - -#: lib/RT/Date.pm:416 -msgid "Jun." -msgstr "Jun." - -#: NOT FOUND IN SOURCE -msgid "Lang" -msgstr "Lang" - -#: html/User/Prefs.html:54 -msgid "Language" -msgstr "Malkovich" - -#: html/Ticket/Elements/Tabs:74 -msgid "Last" -msgstr "Last" - -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 -msgid "Last Contact" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "Malkovich</a>" - -#: html/Elements/SelectDateType:28 -msgid "Last Contacted" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Last Notified" -msgstr "Malkovich" - -#: html/Elements/SelectDateType:29 -msgid "Last Updated" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:82 -msgid "Let this user access RT" -msgstr "Malkovich Malkovich RT" - -#: html/Admin/Users/Modify.html:86 -msgid "Let this user be granted rights" -msgstr "Malkovich be Malkovich" - -#: lib/RT/Record.pm:1086 -msgid "Link already exists" -msgstr "Malkovich Malkovich" - -#: lib/RT/Record.pm:1100 -msgid "Link could not be created" -msgstr "Malkovich be Malkovich" - -#: lib/RT/Record.pm:1106 -#. ($TransString) -msgid "Link created (%1)" -msgstr "Malkovich (%1)" - -#: lib/RT/Record.pm:1167 -#. ($TransString) -msgid "Link deleted (%1)" -msgstr "Malkovich (%1)" - -#: lib/RT/Record.pm:1173 -msgid "Link not found" -msgstr "Malkovich" - -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 -#. ($Ticket->Id) -msgid "Link ticket #%1" -msgstr "Malkovich #%1" - -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 -msgid "Links" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 -msgid "Location" -msgstr "Malkovich" - -#: lib/RT.pm:184 -#. ($RT::LogDir) -msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." -msgstr "Malkovich %1 Malkovich or couldn't be Malkovich.\\n RT can't run." - -#: html/Elements/Header:69 -#. ("<b>".$session{'CurrentUser'}->Name."</b>") -msgid "Logged in as %1" -msgstr "Malkovich in as %1" - -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 lib/RT/StyleGuide.pod:777 -msgid "Login" -msgstr "Malkovich" - -#: html/Elements/Header:66 -msgid "Logout" -msgstr "Malkovich" - -#: html/Search/Bulk.html:83 -msgid "Make Owner" -msgstr "Malkovich" - -#: html/Search/Bulk.html:107 -msgid "Make Status" -msgstr "Malkovich" - -#: html/Search/Bulk.html:115 -msgid "Make date Due" -msgstr "Malkovich" - -#: html/Search/Bulk.html:117 -msgid "Make date Resolved" -msgstr "Malkovich Malkovich" - -#: html/Search/Bulk.html:111 -msgid "Make date Started" -msgstr "Malkovich Malkovich" - -#: html/Search/Bulk.html:109 -msgid "Make date Starts" -msgstr "Malkovich Malkovich" - -#: html/Search/Bulk.html:113 -msgid "Make date Told" -msgstr "Malkovich" - -#: html/Search/Bulk.html:103 -msgid "Make priority" -msgstr "Malkovich" - -#: html/Search/Bulk.html:105 -msgid "Make queue" -msgstr "Malkovich" - -#: html/Search/Bulk.html:101 -msgid "Make subject" -msgstr "Malkovich" - -#: html/Admin/index.html:32 -msgid "Manage groups and group membership" -msgstr "Malkovich and Malkovich Malkovich" - -#: html/Admin/index.html:38 -msgid "Manage properties and configuration which apply to all queues" -msgstr "Malkovich Malkovich and Malkovich Malkovich to Malkovich" - -#: html/Admin/index.html:35 -msgid "Manage queues and queue-specific properties" -msgstr "Malkovich and Malkovich-Malkovich Malkovich" - -#: html/Admin/index.html:29 -msgid "Manage users and passwords" -msgstr "Malkovich and Malkovich" - -#: lib/RT/Date.pm:413 -msgid "Mar." -msgstr "Mar." - -#: lib/RT/Date.pm:415 -msgid "May." -msgstr "May." - -#: lib/RT/Transaction_Overlay.pm:634 -#. ($value) -msgid "Member %1 added" -msgstr "Malkovich %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:674 -#. ($value) -msgid "Member %1 deleted" -msgstr "Malkovich %1 Malkovich" - -#: lib/RT/Group_Overlay.pm:974 -msgid "Member added" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:1136 -msgid "Member deleted" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:1140 -msgid "Member not deleted" -msgstr "Malkovich Malkovich" - -#: html/Elements/SelectLinkType:25 -msgid "Member of" -msgstr "Malkovich of" - -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 -msgid "Members" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:631 -#. ($value) -msgid "Membership in %1 added" -msgstr "Malkovich in %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:671 -#. ($value) -msgid "Membership in %1 deleted" -msgstr "Malkovich in %1 Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2813 -msgid "Merge Successful" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2733 -msgid "Merge failed. Couldn't set EffectiveId" -msgstr "Malkovich. Couldn't Malkovich" - -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 -msgid "Merge into" -msgstr "Malkovich" - -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 -msgid "Message" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Message body not shown because it is too large or is not plain text." -msgstr "Malkovich Malkovich Malkovich it is Malkovich or is Malkovich." - -#: lib/RT/Ticket_Overlay.pm:2514 -msgid "Message could not be recorded" -msgstr "Malkovich Malkovich be Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2517 -msgid "Message recorded" -msgstr "Malkovich Malkovich" - -#: lib/RT/Record.pm:749 -msgid "Missing a primary key?: %1" -msgstr "Malkovich a Malkovich?: %1" - -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 -msgid "Mobile" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "MobilePhone" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:71 -msgid "Modify Access Control List" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 -msgid "Modify Custom Fields which apply to all queues" -msgstr "Malkovich Malkovich Malkovich to Malkovich" - -#: lib/RT/Queue_Overlay.pm:74 -msgid "Modify Scrip templates for this queue" -msgstr "Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:77 -msgid "Modify Scrips for this queue" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Queues/CustomField.html:44 -#. ($QueueObj->Name()) -msgid "Modify a CustomField for queue %1" -msgstr "Malkovich a Malkovich Malkovich %1" - -#: html/Admin/Global/CustomField.html:52 -msgid "Modify a CustomField which applies to all queues" -msgstr "Malkovich a Malkovich Malkovich to Malkovich" - -#: html/Admin/Queues/Scrip.html:53 -#. ($QueueObj->Name) -msgid "Modify a scrip for queue %1" -msgstr "Malkovich a Malkovich %1" - -#: html/Admin/Global/Scrip.html:47 -msgid "Modify a scrip which applies to all queues" -msgstr "Malkovich a Malkovich Malkovich to Malkovich" - -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 -#. ($TicketObj->Id) -msgid "Modify dates for #%1" -msgstr "Malkovich Malkovich #%1" - -#: html/Ticket/ModifyDates.html:34 -#. ($TicketObj->Id) -msgid "Modify dates for ticket # %1" -msgstr "Malkovich Malkovich # %1" - -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 -msgid "Modify global group rights" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Global/GroupRights.html:32 -msgid "Modify global group rights." -msgstr "Malkovich Malkovich Malkovich." - -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 -msgid "Modify global user rights" -msgstr "Malkovich Malkovich" - -#: html/Admin/Global/UserRights.html:32 -msgid "Modify global user rights." -msgstr "Malkovich Malkovich." - -#: lib/RT/Group_Overlay.pm:146 -msgid "Modify group metadata or delete group" -msgstr "Malkovich Malkovich or Malkovich" - -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 -#. ($GroupObj->Name) -msgid "Modify group rights for group %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 -#. ($QueueObj->Name) -msgid "Modify group rights for queue %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: lib/RT/Group_Overlay.pm:148 -msgid "Modify membership roster for this group" -msgstr "Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/System.pm:60 -msgid "Modify one's own RT account" -msgstr "Malkovich's own RT Malkovich" - -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 -#. ($QueueObj->Name) -msgid "Modify people related to queue %1" -msgstr "Malkovich Malkovich to Malkovich %1" - -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 -#. ($Ticket->id) -#. ($Ticket->Id) -msgid "Modify people related to ticket #%1" -msgstr "Malkovich Malkovich to Malkovich #%1" - -#: html/Admin/Queues/Scrips.html:45 -#. ($QueueObj->Name) -msgid "Modify scrips for queue %1" -msgstr "Malkovich Malkovich %1" - -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 -msgid "Modify scrips which apply to all queues" -msgstr "Malkovich Malkovich to Malkovich" - -#: html/Admin/Global/Template.html:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 -#. (loc($TemplateObj->Name())) -#. ($TemplateObj->id) -msgid "Modify template %1" -msgstr "Malkovich %1" - -#: html/Admin/Global/Templates.html:43 -msgid "Modify templates which apply to all queues" -msgstr "Malkovich Malkovich Malkovich to Malkovich" - -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 -#. ($Group->Name) -msgid "Modify the group %1" -msgstr "Malkovich the Malkovich %1" - -#: lib/RT/Queue_Overlay.pm:72 -msgid "Modify the queue watchers" -msgstr "Malkovich the Malkovich" - -#: html/Admin/Users/Modify.html:263 -#. ($UserObj->Name) -msgid "Modify the user %1" -msgstr "Malkovich the user %1" - -#: html/Ticket/ModifyAll.html:36 -#. ($Ticket->Id) -msgid "Modify ticket # %1" -msgstr "Malkovich # %1" - -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 -#. ($TicketObj->Id) -msgid "Modify ticket #%1" -msgstr "Malkovich #%1" - -#: lib/RT/Queue_Overlay.pm:90 -msgid "Modify tickets" -msgstr "Malkovich" - -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 -#. ($GroupObj->Name) -msgid "Modify user rights for group %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 -#. ($QueueObj->Name) -msgid "Modify user rights for queue %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: lib/RT/Queue_Overlay.pm:71 -msgid "ModifyACL" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:149 -msgid "ModifyOwnMembership" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:72 -msgid "ModifyQueueWatchers" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:77 -msgid "ModifyScrips" -msgstr "Malkovich" - -#: lib/RT/System.pm:60 -msgid "ModifySelf" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:74 -msgid "ModifyTemplate" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:90 -msgid "ModifyTicket" -msgstr "Malkovich" - -#: lib/RT/Date.pm:388 -msgid "Mon." -msgstr "Mon." - -#: html/Ticket/Elements/ShowRequestor:40 -#. ($name) -msgid "More about %1" -msgstr "Malkovich %1" - -#: html/Admin/Elements/EditCustomFields:60 -msgid "Move down" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectSingleOrMultiple:26 -msgid "Multiple" -msgstr "Malkovich" - -#: lib/RT/User_Overlay.pm:197 -msgid "Must specify 'Name' attribute" -msgstr "Malkovich 'Name' Malkovich" - -#: html/SelfService/Elements/MyRequests:48 -#. ($friendly_status) -msgid "My %1 tickets" -msgstr "My %1 Malkovich" - -#: html/Approvals/index.html:24 html/Approvals/index.html:25 -msgid "My approvals" -msgstr "My Malkovich" - -#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Groups/Modify.html:43 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 -msgid "Name" -msgstr "Name" - -#: lib/RT/User_Overlay.pm:204 -msgid "Name in use" -msgstr "Name in use" - -#: html/Ticket/Elements/ShowDates:52 -msgid "Never" -msgstr "Malkovich" - -#: html/Elements/Quicksearch:29 -msgid "New" -msgstr "New" - -#: html/Elements/EditLinks:93 -msgid "New Links" -msgstr "Malkovich Malkovich" - -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 -msgid "New Password" -msgstr "Malkovich" - -#: etc/initialdata:332 -msgid "New Pending Approval" -msgstr "Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "New Search" -msgstr "Malkovich" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 -msgid "New custom field" -msgstr "Malkovich Malkovich" - -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 -msgid "New group" -msgstr "Malkovich" - -#: html/SelfService/Prefs.html:31 -msgid "New password" -msgstr "Malkovich" - -#: lib/RT/User_Overlay.pm:773 -msgid "New password notification sent" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Elements/QueueTabs:69 -msgid "New queue" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectRights:41 -msgid "New rights" -msgstr "Malkovich" - -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 -msgid "New scrip" -msgstr "Malkovich" - -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 -msgid "New template" -msgstr "Malkovich" - -#: html/SelfService/Elements/Tabs:47 -msgid "New ticket" -msgstr "Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2700 -msgid "New ticket doesn't exist" -msgstr "Malkovich doesn't Malkovich" - -#: html/Admin/Elements/UserTabs:50 -msgid "New user" -msgstr "Malkovich" - -#: html/Admin/Elements/CreateUserCalled:25 -msgid "New user called" -msgstr "Malkovich" - -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 -msgid "New watchers" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "New window setting" -msgstr "Malkovich Malkovich" - -#: html/Ticket/Elements/Tabs:70 -msgid "Next" -msgstr "Next" - -#: NOT FOUND IN SOURCE -msgid "NickName" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 -msgid "Nickname" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 -msgid "No CustomField" -msgstr "No Malkovich" - -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 -msgid "No Group defined" -msgstr "No Malkovich" - -#: lib/RT/Tickets_Overlay_SQL.pm:452 -msgid "No Query" -msgstr "No Malkovich" - -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 -msgid "No Queue defined" -msgstr "No Malkovich" - -#: bin/rt-crontool:52 -msgid "No RT user found. Please consult your RT administrator.\\n" -msgstr "No RT Malkovich. Malkovich Malkovich RT Malkovich.\\n" - -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 -msgid "No Template" -msgstr "No Malkovich" - -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket " -msgstr "No Malkovich Malkovich. Malkovich " - -#: html/Approvals/Elements/Approve:45 -msgid "No action" -msgstr "No Malkovich" - -#: lib/RT/Record.pm:744 -msgid "No column specified" -msgstr "No Malkovich Malkovich" - -#: html/Ticket/Elements/ShowRequestor:46 -msgid "No comment entered about this user" -msgstr "No Malkovich Malkovich Malkovich" - -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 -#. (ref $self) -msgid "No description for %1" -msgstr "No Malkovich %1" - -#: lib/RT/Users_Overlay.pm:159 -msgid "No group specified" -msgstr "No Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2475 -msgid "No message attached" -msgstr "No Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:991 -msgid "No password set" -msgstr "No Malkovich" - -#: lib/RT/Queue_Overlay.pm:296 -msgid "No permission to create queues" -msgstr "No Malkovich to Malkovich" - -#: NOT FOUND IN SOURCE -msgid "No permission to create tickets in the queue '%1'" -msgstr "No Malkovich to Malkovich in the Malkovich '%1'" - -#: lib/RT/User_Overlay.pm:157 -msgid "No permission to create users" -msgstr "No Malkovich to Malkovich" - -#: html/SelfService/Display.html:125 -msgid "No permission to display that ticket" -msgstr "No Malkovich to Malkovich Malkovich" - -#: html/SelfService/Update.html:68 -msgid "No permission to view update ticket" -msgstr "No Malkovich to Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 -msgid "No principal specified" -msgstr "No Malkovich Malkovich" - -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 -msgid "No principals selected." -msgstr "No Malkovich Malkovich." - -#: html/Admin/Queues/index.html:34 -msgid "No queues matching search criteria found." -msgstr "No Malkovich Malkovich Malkovich Malkovich." - -#: html/Admin/Elements/SelectRights:81 -msgid "No rights found" -msgstr "No Malkovich" - -#: html/Admin/Elements/SelectRights:32 -msgid "No rights granted." -msgstr "No Malkovich." - -#: html/Search/Bulk.html:162 -msgid "No search to operate on." -msgstr "No Malkovich to Malkovich on." - -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 -msgid "No transaction type specified" -msgstr "No Malkovich Malkovich Malkovich" - -#: html/Admin/Users/index.html:35 -msgid "No users matching search criteria found." -msgstr "No Malkovich Malkovich Malkovich Malkovich." - -#: NOT FOUND IN SOURCE -msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" -msgstr "No Malkovich RT Malkovich. RT Malkovich Malkovich. Malkovich Malkovich RT Malkovich.\\n" - -#: lib/RT/Record.pm:741 -msgid "No value sent to _Set!\\n" -msgstr "No Malkovich to _Set!\\n" - -#: lib/RT/Record.pm:746 -msgid "Nonexistant field?" -msgstr "Malkovich Malkovich?" - -#: html/Elements/Header:71 -msgid "Not logged in." -msgstr "Malkovich in." - -#: lib/RT/Date.pm:369 -msgid "Not set" -msgstr "Malkovich" - -#: html/NoAuth/Reminder.html:26 -msgid "Not yet implemented." -msgstr "Malkovich Malkovich." - -#: html/Approvals/Elements/Approve:48 -msgid "Notes" -msgstr "Malkovich" - -#: lib/RT/User_Overlay.pm:776 -msgid "Notification could not be sent" -msgstr "Malkovich Malkovich be sent" - -#: etc/initialdata:101 -msgid "Notify AdminCcs" -msgstr "Malkovich" - -#: etc/initialdata:97 -msgid "Notify AdminCcs as Comment" -msgstr "Malkovich as Malkovich" - -#: etc/initialdata:128 -msgid "Notify Other Recipients" -msgstr "Malkovich Malkovich" - -#: etc/initialdata:124 -msgid "Notify Other Recipients as Comment" -msgstr "Malkovich Malkovich as Malkovich" - -#: etc/initialdata:85 -msgid "Notify Owner" -msgstr "Malkovich" - -#: etc/initialdata:81 -msgid "Notify Owner as Comment" -msgstr "Malkovich as Malkovich" - -#: etc/initialdata:376 -msgid "Notify Owner of their rejected ticket" -msgstr "Malkovich of Malkovich Malkovich" - -#: etc/initialdata:365 -msgid "Notify Owner of their ticket has been approved by all approvers" -msgstr "Malkovich of Malkovich Malkovich Malkovich by Malkovich" - -#: etc/initialdata:353 -msgid "Notify Owner of their ticket has been approved by some approver" -msgstr "Malkovich of Malkovich Malkovich Malkovich by Malkovich" - -#: etc/initialdata:334 -msgid "Notify Owners and AdminCcs of new items pending their approval" -msgstr "Malkovich and Malkovich of Malkovich Malkovich Malkovich" - -#: etc/initialdata:77 -msgid "Notify Requestors" -msgstr "Malkovich Malkovich" - -#: etc/initialdata:111 -msgid "Notify Requestors and Ccs" -msgstr "Malkovich Malkovich and Ccs" - -#: etc/initialdata:106 -msgid "Notify Requestors and Ccs as Comment" -msgstr "Malkovich Malkovich and Ccs as Malkovich" - -#: etc/initialdata:120 -msgid "Notify Requestors, Ccs and AdminCcs" -msgstr "Malkovich Malkovich, Ccs and Malkovich" - -#: etc/initialdata:116 -msgid "Notify Requestors, Ccs and AdminCcs as Comment" -msgstr "Malkovich Malkovich, Ccs and Malkovich as Malkovich" - -#: lib/RT/Date.pm:421 -msgid "Nov." -msgstr "Nov." - -#: lib/RT/Record.pm:200 -msgid "Object could not be created" -msgstr "Malkovich Malkovich be Malkovich" - -#: lib/RT/Record.pm:219 -msgid "Object created" -msgstr "Malkovich" - -#: lib/RT/Date.pm:420 -msgid "Oct." -msgstr "Oct." - -#: html/Elements/SelectDateRelation:34 -msgid "On" -msgstr "On" - -#: etc/initialdata:163 -msgid "On Comment" -msgstr "On Malkovich" - -#: etc/initialdata:156 -msgid "On Correspond" -msgstr "On Malkovich" - -#: etc/initialdata:145 -msgid "On Create" -msgstr "On Malkovich" - -#: etc/initialdata:184 -msgid "On Owner Change" -msgstr "On Malkovich" - -#: etc/initialdata:192 -msgid "On Queue Change" -msgstr "On Malkovich" - -#: etc/initialdata:198 -msgid "On Resolve" -msgstr "On Malkovich" - -#: etc/initialdata:169 -msgid "On Status Change" -msgstr "On Malkovich" - -#: etc/initialdata:150 -msgid "On Transaction" -msgstr "On Malkovich" - -#: html/Approvals/Elements/PendingMyApproval:49 -#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") -msgid "Only show approvals for requests created after %1" -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich %1" - -#: html/Approvals/Elements/PendingMyApproval:47 -#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") -msgid "Only show approvals for requests created before %1" -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich %1" - -#: html/Elements/Quicksearch:30 -msgid "Open" -msgstr "Open" - -#: html/Ticket/Elements/Tabs:137 -msgid "Open it" -msgstr "Open it" - -#: html/SelfService/Elements/Tabs:41 -msgid "Open tickets" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in a new window" -msgstr "Malkovich (Malkovich) in a Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in another window" -msgstr "Malkovich (Malkovich) in Malkovich" - -#: etc/initialdata:140 -msgid "Open tickets on correspondence" -msgstr "Malkovich on Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Ordering and sorting" -msgstr "Malkovich and Malkovich" - -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 -msgid "Organization" -msgstr "Malkovich" - -#: html/Approvals/Elements/Approve:32 -#. ($approving->Id, $approving->Subject) -msgid "Originating ticket: #%1" -msgstr "Malkovich Malkovich: #%1" - -#: html/Admin/Queues/Modify.html:68 -msgid "Over time, priority moves toward" -msgstr "Malkovich, Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:89 -msgid "Own tickets" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:89 -msgid "OwnTicket" -msgstr "Malkovich" - -#: etc/initialdata:38 html/Elements/QuickCreate:13 html/Search/Elements/PickBasics:114 html/SelfService/Elements/MyRequests:29 html/Ticket/Create.html:47 html/Ticket/Elements/EditPeople:42 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/ShowPeople:26 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1306 -msgid "Owner" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:575 -#. ($Old->Name , $New->Name) -msgid "Owner forcibly changed from %1 to %2" -msgstr "Malkovich Malkovich Malkovich %1 to %2" - -#: NOT FOUND IN SOURCE -msgid "Owner is" -msgstr "Malkovich is" - -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 -msgid "Pager" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "PagerPhone" -msgstr "Malkovich" - -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 -msgid "Parents" -msgstr "Malkovich" - -#: html/Elements/Login:52 html/User/Prefs.html:83 -msgid "Password" -msgstr "Malkovich" - -#: html/NoAuth/Reminder.html:24 -msgid "Password Reminder" -msgstr "Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 -msgid "Password too short" -msgstr "Malkovich Malkovich" - -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 -#. (loc_fuzzy($msg)) -msgid "Password: %1" -msgstr "Malkovich: %1" - -#: html/Admin/Users/Modify.html:318 -msgid "Passwords do not match." -msgstr "Malkovich do Malkovich." - -#: html/User/Prefs.html:211 -msgid "Passwords do not match. Your password has not been changed" -msgstr "Malkovich do Malkovich. Malkovich Malkovich Malkovich" - -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 -msgid "People" -msgstr "Malkovich" - -#: etc/initialdata:133 -msgid "Perform a user-defined action" -msgstr "Malkovich a user-Malkovich" - -#: lib/RT/ACE_Overlay.pm:230 lib/RT/ACE_Overlay.pm:236 lib/RT/ACE_Overlay.pm:562 lib/RT/ACE_Overlay.pm:572 lib/RT/ACE_Overlay.pm:582 lib/RT/ACE_Overlay.pm:647 lib/RT/Attribute_Overlay.pm:135 lib/RT/Attribute_Overlay.pm:141 lib/RT/Attribute_Overlay.pm:379 lib/RT/Attribute_Overlay.pm:388 lib/RT/Attribute_Overlay.pm:401 lib/RT/CurrentUser.pm:103 lib/RT/CurrentUser.pm:94 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:207 lib/RT/CustomField_Overlay.pm:239 lib/RT/CustomField_Overlay.pm:517 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1091 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1104 lib/RT/Group_Overlay.pm:1155 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1165 lib/RT/Group_Overlay.pm:426 lib/RT/Group_Overlay.pm:518 lib/RT/Group_Overlay.pm:596 lib/RT/Group_Overlay.pm:604 lib/RT/Group_Overlay.pm:701 lib/RT/Group_Overlay.pm:705 lib/RT/Group_Overlay.pm:711 lib/RT/Group_Overlay.pm:896 lib/RT/Group_Overlay.pm:900 lib/RT/Group_Overlay.pm:913 lib/RT/Queue_Overlay.pm:117 lib/RT/Queue_Overlay.pm:135 lib/RT/Queue_Overlay.pm:578 lib/RT/Queue_Overlay.pm:588 lib/RT/Queue_Overlay.pm:602 lib/RT/Queue_Overlay.pm:740 lib/RT/Queue_Overlay.pm:749 lib/RT/Queue_Overlay.pm:762 lib/RT/Queue_Overlay.pm:975 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:201 lib/RT/Scrip_Overlay.pm:473 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1453 lib/RT/Ticket_Overlay.pm:1463 lib/RT/Ticket_Overlay.pm:1477 lib/RT/Ticket_Overlay.pm:1614 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1638 lib/RT/Ticket_Overlay.pm:1755 lib/RT/Ticket_Overlay.pm:2075 lib/RT/Ticket_Overlay.pm:2213 lib/RT/Ticket_Overlay.pm:2381 lib/RT/Ticket_Overlay.pm:2428 lib/RT/Ticket_Overlay.pm:2582 lib/RT/Ticket_Overlay.pm:2640 lib/RT/Ticket_Overlay.pm:2691 lib/RT/Ticket_Overlay.pm:2706 lib/RT/Ticket_Overlay.pm:2905 lib/RT/Ticket_Overlay.pm:2915 lib/RT/Ticket_Overlay.pm:2920 lib/RT/Ticket_Overlay.pm:3143 lib/RT/Ticket_Overlay.pm:3147 lib/RT/Ticket_Overlay.pm:3350 lib/RT/Ticket_Overlay.pm:3512 lib/RT/Ticket_Overlay.pm:3564 lib/RT/Ticket_Overlay.pm:3791 lib/RT/Transaction_Overlay.pm:443 lib/RT/Transaction_Overlay.pm:450 lib/RT/Transaction_Overlay.pm:479 lib/RT/Transaction_Overlay.pm:486 lib/RT/User_Overlay.pm:1088 lib/RT/User_Overlay.pm:1536 lib/RT/User_Overlay.pm:335 lib/RT/User_Overlay.pm:696 lib/RT/User_Overlay.pm:731 lib/RT/User_Overlay.pm:987 -msgid "Permission Denied" -msgstr "Malkovich Malkovich" - -#: html/User/Elements/Tabs:34 -msgid "Personal Groups" -msgstr "Malkovich" - -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 -msgid "Personal groups" -msgstr "Malkovich" - -#: html/User/Elements/DelegateRights:36 -msgid "Personal groups:" -msgstr "Malkovich:" - -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 -msgid "Phone numbers" -msgstr "Malkovich" - -#: html/Elements/Header:63 html/Elements/Tabs:55 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 -msgid "Preferences" -msgstr "Malkovich" - -#: lib/RT/Action/Generic.pm:169 -msgid "Prepare Stubbed" -msgstr "Malkovich" - -#: html/Ticket/Elements/Tabs:62 -msgid "Prev" -msgstr "Prev" - -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 -#. ($args{'PrincipalId'}) -msgid "Principal %1 not found." -msgstr "Malkovich %1 Malkovich." - -#: html/Search/Elements/PickBasics:58 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:52 html/Ticket/Elements/ShowBasics:50 lib/RT/Tickets_Overlay.pm:1104 -msgid "Priority" -msgstr "Malkovich" - -#: html/Admin/Queues/Modify.html:64 -msgid "Priority starts at" -msgstr "Malkovich at" - -#: etc/initialdata:25 -msgid "Privileged" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 -#. (loc_fuzzy($msg)) -msgid "Privileged status: %1" -msgstr "Malkovich Malkovich: %1" - -#: html/Admin/Users/index.html:61 -msgid "Privileged users" -msgstr "Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Projects" -msgstr "Malkovich" - -#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 -msgid "Pseudogroup for internal use" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Elements/QuickCreate:10 html/Elements/Quicksearch:28 html/Search/Elements/PickBasics:94 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:35 html/Ticket/Elements/ShowBasics:54 html/User/Elements/DelegateRights:79 lib/RT/Tickets_Overlay.pm:945 -msgid "Queue" -msgstr "Malkovich" - -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 -#. ($Queue) -#. ($id) -msgid "Queue %1 not found" -msgstr "Malkovich %1 Malkovich" - -#: html/Admin/Queues/Modify.html:42 -msgid "Queue Name" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:300 -msgid "Queue already exists" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 -msgid "Queue could not be created" -msgstr "Malkovich not be Malkovich" - -#: html/Ticket/Create.html:208 -msgid "Queue could not be loaded." -msgstr "Malkovich be Malkovich." - -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 -msgid "Queue created" -msgstr "Malkovich" - -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 -msgid "Queue not found" -msgstr "Malkovich" - -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 -msgid "Queues" -msgstr "Malkovich" - -#: html/Elements/Quicksearch:24 -msgid "Quick search" -msgstr "Malkovich" - -#: html/Elements/Login:44 -#. ($RT::VERSION) -msgid "RT %1" -msgstr "RT %1" - -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 -#. ($RT::VERSION, $RT::rtname) -msgid "RT %1 for %2" -msgstr "RT %1 for %2" - -#: NOT FOUND IN SOURCE -msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." -msgstr "RT %1 from <a href=\"http://Malkovich.com\">Malkovich Malkovich, LLC</a>." - -#: html/Admin/index.html:24 html/Admin/index.html:25 -msgid "RT Administration" -msgstr "RT Malkovich" - -#: html/Elements/Error:41 html/SelfService/Error.html:40 -msgid "RT Error" -msgstr "RT Malkovich" - -#: html/index.html:50 html/index.html:53 -msgid "RT at a glance" -msgstr "RT at a Malkovich" - -#: html/Elements/PageLayout:85 -#. ($RT::rtname) -msgid "RT for %1" -msgstr "RT for %1" - -#: NOT FOUND IN SOURCE -msgid "RT is © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. It is distributed under <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 of the GNU General Public License.</a>" -msgstr "RT is © Malkovich 1996-%1 Malkovich <Malkovich@Malkovich.com>. It is Malkovich Malkovich <a href=\"http://www.gnu.org/copyleft/gpl.html\">Malkovich 2 of the Malkovich Malkovich Malkovich.</a>" - -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 -msgid "Real Name" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "RealName" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:628 -#. ($value) -msgid "Reference by %1 added" -msgstr "Malkovich by %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:668 -#. ($value) -msgid "Reference by %1 deleted" -msgstr "Malkovich by %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:625 -#. ($value) -msgid "Reference to %1 added" -msgstr "Malkovich to %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:665 -#. ($value) -msgid "Reference to %1 deleted" -msgstr "Malkovich to %1 Malkovich" - -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 -msgid "Referred to by" -msgstr "Malkovich to by" - -#: html/Elements/EditLinks:125 html/Elements/EditLinks:72 html/Elements/SelectLinkType:27 html/Elements/ShowLinks:60 html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:46 -msgid "Refers to" -msgstr "Malkovich to" - -#: NOT FOUND IN SOURCE -msgid "Refine search" -msgstr "Malkovich" - -#: html/Elements/Refresh:35 -#. ($value/60) -msgid "Refresh this page every %1 minutes." -msgstr "Malkovich Malkovich %1 Malkovich." - -#: html/Search/Bulk.html:95 -msgid "Remove AdminCc" -msgstr "Malkovich" - -#: html/Search/Bulk.html:91 -msgid "Remove Cc" -msgstr "Malkovich Cc" - -#: html/Search/Bulk.html:87 -msgid "Remove Requestor" -msgstr "Malkovich Malkovich" - -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 -msgid "Reply" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:87 -msgid "Reply to tickets" -msgstr "Malkovich to Malkovich" - -#: lib/RT/Queue_Overlay.pm:87 -msgid "ReplyToTicket" -msgstr "Malkovich" - -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 -msgid "Requestor" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Requestor email address" -msgstr "Malkovich Malkovich" - -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 -msgid "Requestors" -msgstr "Malkovich" - -#: html/Admin/Queues/Modify.html:74 -msgid "Requests should be due in" -msgstr "Malkovich be due in" - -#: html/Elements/Submit:61 -msgid "Reset" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 -msgid "Residence" -msgstr "Malkovich" - -#: html/Ticket/Elements/Tabs:133 -msgid "Resolve" -msgstr "Malkovich" - -#: html/Ticket/Update.html:119 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Resolve ticket #%1 (%2)" -msgstr "Malkovich #%1 (%2)" - -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 -msgid "Resolved" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Response to requestors" -msgstr "Malkovich to Malkovich" - -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 -msgid "Results" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Results per page" -msgstr "Malkovich Malkovich" - -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 -msgid "Retype Password" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:612 -msgid "Right Delegated" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:302 -msgid "Right Granted" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:160 -msgid "Right Loaded" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 -msgid "Right could not be revoked" -msgstr "Malkovich be Malkovich" - -#: html/User/Delegation.html:63 -msgid "Right not found" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 -msgid "Right not loaded." -msgstr "Malkovich Malkovich." - -#: lib/RT/ACE_Overlay.pm:688 -msgid "Right revoked" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Rights" -msgstr "Malkovich" - -#: lib/RT/Interface/Web.pm:869 -#. ($object_type) -msgid "Rights could not be granted for %1" -msgstr "Malkovich Malkovich be Malkovich %1" - -#: lib/RT/Interface/Web.pm:899 -#. ($object_type) -msgid "Rights could not be revoked for %1" -msgstr "Malkovich Malkovich be Malkovich %1" - -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 -msgid "Roles" -msgstr "Malkovich" - -#: lib/RT/Date.pm:393 -msgid "Sat." -msgstr "Sat." - -#: html/Admin/Global/Template.html:45 html/Admin/Queues/Modify.html:89 html/Admin/Queues/People.html:104 html/Admin/Users/Modify.html:198 html/SelfService/Prefs.html:36 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyDates.html:38 html/Ticket/ModifyLinks.html:38 html/Ticket/ModifyPeople.html:37 -msgid "Save Changes" -msgstr "Malkovich" - -#: html/Ticket/Elements/PreviewScrips:79 -msgid "Save changes" -msgstr "Malkovich" - -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 -#. ($id) -#. ($ARGS{'id'}) -msgid "Scrip #%1" -msgstr "Malkovich #%1" - -#: lib/RT/Scrip_Overlay.pm:180 -msgid "Scrip Created" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrips:85 -msgid "Scrip deleted" -msgstr "Malkovich" - -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 -msgid "Scrips" -msgstr "Malkovich" - -#: html/Admin/Queues/Scrips.html:33 -msgid "Scrips which apply to all queues" -msgstr "Malkovich Malkovich to Malkovich" - -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 -msgid "Search" -msgstr "Malkovich" - -#: html/Approvals/Elements/PendingMyApproval:38 -msgid "Search for approvals" -msgstr "Malkovich Malkovich" - -#: bin/rt-crontool:184 -msgid "Security:" -msgstr "Malkovich:" - -#: lib/RT/Queue_Overlay.pm:68 -msgid "SeeQueue" -msgstr "Malkovich" - -#: html/Admin/Groups/index.html:50 -msgid "Select a group" -msgstr "Malkovich a Malkovich" - -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 -msgid "Select a user" -msgstr "Malkovich a user" - -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 -msgid "Select custom field" -msgstr "Malkovich Malkovich" - -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 -msgid "Select group" -msgstr "Malkovich" - -#: lib/RT/CustomField_Overlay.pm:427 -msgid "Select multiple values" -msgstr "Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:424 -msgid "Select one value" -msgstr "Malkovich Malkovich" - -#: html/Admin/Elements/QueueTabs:66 -msgid "Select queue" -msgstr "Malkovich" - -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 -msgid "Select scrip" -msgstr "Malkovich" - -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 -msgid "Select template" -msgstr "Malkovich" - -#: html/Admin/Elements/UserTabs:46 -msgid "Select user" -msgstr "Malkovich" - -#: lib/RT/CustomField_Overlay.pm:35 -msgid "SelectMultiple" -msgstr "Malkovich" - -#: lib/RT/CustomField_Overlay.pm:34 -msgid "SelectSingle" -msgstr "Malkovich" - -#: etc/initialdata:121 -msgid "Send mail to all watchers" -msgstr "Malkovich to Malkovich" - -#: etc/initialdata:117 -msgid "Send mail to all watchers as a \"comment\"" -msgstr "Malkovich to Malkovich as a \"Malkovich\"" - -#: etc/initialdata:112 -msgid "Send mail to requestors and Ccs" -msgstr "Malkovich to Malkovich and Ccs" - -#: etc/initialdata:107 -msgid "Send mail to requestors and Ccs as a comment" -msgstr "Malkovich to Malkovich and Ccs as a Malkovich" - -#: etc/initialdata:78 -msgid "Sends a message to the requestors" -msgstr "Malkovich a Malkovich to the Malkovich" - -#: etc/initialdata:125 etc/initialdata:129 -msgid "Sends mail to explicitly listed Ccs and Bccs" -msgstr "Malkovich to Malkovich Malkovich and Bccs" - -#: etc/initialdata:102 -msgid "Sends mail to the administrative Ccs" -msgstr "Malkovich to the Malkovich Malkovich" - -#: etc/initialdata:98 -msgid "Sends mail to the administrative Ccs as a comment" -msgstr "Malkovich to the Malkovich Malkovich as a Malkovich" - -#: etc/initialdata:82 etc/initialdata:86 -msgid "Sends mail to the owner" -msgstr "Malkovich to the Malkovich" - -#: lib/RT/Date.pm:419 -msgid "Sep." -msgstr "Sep." - -#: html/Approvals/Elements/PendingMyApproval:43 -msgid "Show approved requests" -msgstr "Malkovich Malkovich" - -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 -msgid "Show basics" -msgstr "Malkovich" - -#: html/Approvals/Elements/PendingMyApproval:44 -msgid "Show denied requests" -msgstr "Malkovich Malkovich" - -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 -msgid "Show details" -msgstr "Malkovich" - -#: html/Approvals/Elements/PendingMyApproval:42 -msgid "Show pending requests" -msgstr "Malkovich Malkovich" - -#: html/Approvals/Elements/PendingMyApproval:45 -msgid "Show requests awaiting other approvals" -msgstr "Malkovich Malkovich Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Show ticket private commentary" -msgstr "Malkovich Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Show ticket summaries" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:70 -msgid "ShowACL" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:79 -msgid "ShowScrips" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:76 -msgid "ShowTemplate" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:80 -msgid "ShowTicket" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:81 -msgid "ShowTicketComments" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:84 -msgid "Sign up as a ticket Requestor or ticket or queue Cc" -msgstr "Sign up as a Malkovich Malkovich or Malkovich or Malkovich Cc" - -#: lib/RT/Queue_Overlay.pm:85 -msgid "Sign up as a ticket or queue AdminCc" -msgstr "Sign up as a Malkovich or Malkovich" - -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 -msgid "Signature" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectSingleOrMultiple:25 -msgid "Single" -msgstr "Malkovich" - -#: html/Elements/Header:62 -msgid "Skip Menu" -msgstr "Malkovich" - -#: html/Admin/Elements/AddCustomFieldValue:27 -msgid "Sort" -msgstr "Sort" - -#: NOT FOUND IN SOURCE -msgid "Sort results by" -msgstr "Malkovich by" - -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Elements/EditScrip:65 -msgid "Stage" -msgstr "Malkovich" - -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 -msgid "Started" -msgstr "Malkovich" - -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 -msgid "Starts" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 -msgid "State" -msgstr "Malkovich" - -#: html/Search/Elements/PickBasics:77 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:31 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:37 lib/RT/Ticket_Overlay.pm:1276 lib/RT/Tickets_Overlay.pm:970 -msgid "Status" -msgstr "Malkovich" - -#: etc/initialdata:309 -msgid "Status Change" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) -msgid "Status changed from %1 to %2" -msgstr "Malkovich Malkovich %1 to %2" - -#: html/Ticket/Elements/Tabs:148 -msgid "Steal" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "Steal tickets" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "StealTicket" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:581 -#. ($Old->Name) -msgid "Stolen from %1 " -msgstr "Malkovich %1 " - -#: html/Elements/QuickCreate:7 html/Elements/SelectAttachmentField:25 html/Search/Bulk.html:133 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:26 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:58 lib/RT/Ticket_Overlay.pm:1272 lib/RT/Tickets_Overlay.pm:1049 -msgid "Subject" -msgstr "Malkovich" - -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 -#. ($self->Data) -msgid "Subject changed to %1" -msgstr "Malkovich to %1" - -#: html/Elements/Submit:58 -msgid "Submit" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:749 -msgid "Succeeded" -msgstr "Malkovich" - -#: lib/RT/Date.pm:394 -msgid "Sun." -msgstr "Sun." - -#: lib/RT/System.pm:53 -msgid "SuperUser" -msgstr "Malkovich" - -#: html/User/Elements/DelegateRights:76 -msgid "System" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 -msgid "System Error" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:615 -msgid "System error. Right not delegated." -msgstr "Malkovich. Malkovich Malkovich." - -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 -msgid "System error. Right not granted." -msgstr "Malkovich. Malkovich Malkovich." - -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 -msgid "System groups" -msgstr "Malkovich" - -#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 -msgid "SystemRolegroup for internal use" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/CurrentUser.pm:334 -msgid "TEST_STRING" -msgstr "TEST_MALKOVICH" - -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 -msgid "Take" -msgstr "Take" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "Take tickets" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "TakeTicket" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:566 -msgid "Taken" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 -msgid "Template" -msgstr "Malkovich" - -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 -#. ($TemplateObj->Id()) -msgid "Template #%1" -msgstr "Malkovich #%1" - -#: html/Admin/Elements/EditTemplates:88 -msgid "Template deleted" -msgstr "Malkovich Malkovich" - -#: lib/RT/Scrip_Overlay.pm:156 -msgid "Template not found" -msgstr "Malkovich Malkovich" - -#: lib/RT/Template_Overlay.pm:348 -msgid "Template parsed" -msgstr "Malkovich" - -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 -msgid "Templates" -msgstr "Malkovich" - -#: lib/RT/Record.pm:740 -msgid "That is already the current value" -msgstr "That is Malkovich the Malkovich" - -#: lib/RT/CustomField_Overlay.pm:248 -msgid "That is not a value for this custom field" -msgstr "That is not a Malkovich Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2086 -msgid "That is the same value" -msgstr "That is the Malkovich" - -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 -msgid "That principal already has that right" -msgstr "Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:674 -#. ($args{'Type'}) -msgid "That principal is already a %1 for this queue" -msgstr "Malkovich is Malkovich a %1 Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1527 -#. ($self->loc($args{'Type'})) -msgid "That principal is already a %1 for this ticket" -msgstr "Malkovich is Malkovich a %1 Malkovich" - -#: lib/RT/Queue_Overlay.pm:773 -#. ($args{'Type'}) -msgid "That principal is not a %1 for this queue" -msgstr "That Malkovich is not a %1 Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2082 -msgid "That queue does not exist" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3152 -msgid "That ticket has unresolved dependencies" -msgstr "Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2956 -msgid "That user already owns that ticket" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2928 -msgid "That user does not exist" -msgstr "Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:355 -msgid "That user is already privileged" -msgstr "Malkovich is Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:376 -msgid "That user is already unprivileged" -msgstr "Malkovich is Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:368 -msgid "That user is now privileged" -msgstr "Malkovich is Malkovich" - -#: lib/RT/User_Overlay.pm:389 -msgid "That user is now unprivileged" -msgstr "Malkovich is Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2949 -msgid "That user may not own tickets in that queue" -msgstr "Malkovich Malkovich Malkovich in Malkovich" - -#: lib/RT/Link_Overlay.pm:200 -msgid "That's not a numerical id" -msgstr "That's not a Malkovich id" - -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 -msgid "The Basics" -msgstr "The Malkovich" - -#: lib/RT/ACE_Overlay.pm:87 -msgid "The CC of a ticket" -msgstr "The CC of a Malkovich" - -#: lib/RT/ACE_Overlay.pm:88 -msgid "The administrative CC of a ticket" -msgstr "The Malkovich CC of a Malkovich" - -#: bin/rt-crontool:194 -msgid "The following command will find all active tickets in the queue 'general' and set their priority to 99 if they haven't been touched in 4 hours:" -msgstr "The Malkovich Malkovich Malkovich Malkovich Malkovich in the Malkovich 'Malkovich' and Malkovich Malkovich to 99 if they haven't Malkovich in 4 Malkovich:" - -#: NOT FOUND IN SOURCE -msgid "The following commands were not proccessed:\\n\\n" -msgstr "The Malkovich Malkovich Malkovich Malkovich:\\n\\n" - -#: lib/RT/Record.pm:743 -msgid "The new value has been set." -msgstr "The Malkovich Malkovich." - -#: lib/RT/ACE_Overlay.pm:85 -msgid "The owner of a ticket" -msgstr "The Malkovich of a Malkovich" - -#: lib/RT/ACE_Overlay.pm:86 -msgid "The requestor of a ticket" -msgstr "The Malkovich of a Malkovich" - -#: html/Admin/Elements/EditUserComments:25 -msgid "These comments aren't generally visible to the user" -msgstr "Malkovich aren't Malkovich Malkovich to the user" - -#: bin/rt-crontool:185 -msgid "This tool allows the user to run arbitrary perl modules from within RT." -msgstr "Malkovich Malkovich the user to Malkovich Malkovich Malkovich Malkovich RT." - -#: lib/RT/Transaction_Overlay.pm:226 -msgid "This transaction appears to have no content" -msgstr "Malkovich Malkovich to have no Malkovich" - -#: html/Ticket/Elements/ShowRequestor:48 -#. ($rows) -msgid "This user's %1 highest priority tickets" -msgstr "Malkovich's %1 Malkovich Malkovich" - -#: lib/RT/Date.pm:391 -msgid "Thu." -msgstr "Thu." - -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket #%1 Jumbo update: %2" -msgstr "Malkovich #%1 Malkovich: %2" - -#: html/Approvals/Elements/ShowDependency:45 -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Ticket #%1: %2" -msgstr "Malkovich #%1: %2" - -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 -#. ($self->Id, $QueueObj->Name) -msgid "Ticket %1 created in queue '%2'" -msgstr "Malkovich %1 Malkovich in Malkovich '%2'" - -#: NOT FOUND IN SOURCE -msgid "Ticket %1 loaded\\n" -msgstr "Malkovich %1 Malkovich\\n" - -#: html/Search/Bulk.html:216 -#. ($Ticket->Id,$_) -msgid "Ticket %1: %2" -msgstr "Malkovich %1: %2" - -#: html/Ticket/History.html:24 html/Ticket/History.html:27 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket History # %1 %2" -msgstr "Malkovich # %1 %2" - -#: etc/initialdata:324 -msgid "Ticket Resolved" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Ticket attachment" -msgstr "Malkovich Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1228 -msgid "Ticket content" -msgstr "Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1274 -msgid "Ticket content type" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 -msgid "Ticket could not be created due to an internal error" -msgstr "Malkovich Malkovich be Malkovich to a Malkovich" - -#: lib/RT/Transaction_Overlay.pm:497 -msgid "Ticket created" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:502 -msgid "Ticket deleted" -msgstr "Malkovich" - -#: etc/initialdata:310 -msgid "Ticket status changed" -msgstr "Malkovich Malkovich" - -#: html/Elements/Tabs:46 -msgid "Tickets" -msgstr "Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) -msgid "Tickets %1 %2" -msgstr "Malkovich %1 %2" - -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) -msgid "Tickets %1 by %2" -msgstr "Malkovich %1 by %2" - -#: NOT FOUND IN SOURCE -msgid "Tickets from %1" -msgstr "Malkovich %1" - -#: html/Approvals/Elements/ShowDependency:26 -msgid "Tickets which depend on this approval:" -msgstr "Malkovich Malkovich on Malkovich:" - -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 -msgid "Time Left" -msgstr "Malkovich" - -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 -msgid "Time Worked" -msgstr "Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1201 -msgid "Time left" -msgstr "Malkovich" - -#: html/Elements/Footer:44 -msgid "Time to display" -msgstr "Time to Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1177 -msgid "Time worked" -msgstr "Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1277 -msgid "TimeWorked" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:" -msgstr "To Malkovich a diff of Malkovich:" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:\\n" -msgstr "To Malkovich a diff of Malkovich:\\n" - -#: lib/RT/Ticket_Overlay.pm:1280 -msgid "Told" -msgstr "Told" - -#: etc/initialdata:252 -msgid "Transaction" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:705 -#. ($self->Data) -msgid "Transaction %1 purged" -msgstr "Malkovich %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:136 -msgid "Transaction Created" -msgstr "Malkovich Malkovich" - -#: lib/RT/Transaction_Overlay.pm:92 -msgid "Transaction->Create couldn't, as you didn't specify a ticket id" -msgstr "Malkovich->Malkovich couldn't, as you didn't Malkovich a Malkovich id" - -#: lib/RT/Transaction_Overlay.pm:760 -msgid "Transactions are immutable" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Date.pm:389 -msgid "Tue." -msgstr "Tue." - -#: html/Admin/Elements/EditCustomField:43 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1278 lib/RT/Tickets_Overlay.pm:1021 -msgid "Type" -msgstr "Type" - -#: lib/RT/ScripCondition_Overlay.pm:103 -msgid "Unimplemented" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:67 -msgid "Unix login" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "UnixUsername" -msgstr "Malkovich" - -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 -#. ($self->ContentEncoding) -msgid "Unknown ContentEncoding %1" -msgstr "Malkovich Malkovich %1" - -#: html/Elements/SelectResultsPerPage:36 -msgid "Unlimited" -msgstr "Malkovich" - -#: etc/initialdata:32 -msgid "Unprivileged" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:562 -msgid "Untaken" -msgstr "Malkovich" - -#: html/Search/Bulk.html:32 -msgid "Update" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Update ID" -msgstr "Malkovich ID" - -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 -msgid "Update Type" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Update all these tickets at once" -msgstr "Malkovich Malkovich at once" - -#: NOT FOUND IN SOURCE -msgid "Update email" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Update name" -msgstr "Malkovich" - -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 -msgid "Update not recorded." -msgstr "Malkovich Malkovich." - -#: html/Search/Bulk.html:78 -msgid "Update selected tickets" -msgstr "Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Update signature" -msgstr "Malkovich Malkovich" - -#: html/Ticket/ModifyAll.html:62 -msgid "Update ticket" -msgstr "Malkovich" - -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 -#. ($Ticket->id) -msgid "Update ticket #%1" -msgstr "Malkovich #%1" - -#: html/Ticket/Update.html:121 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Update ticket #%1 (%2)" -msgstr "Malkovich #%1 (%2)" - -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 -msgid "Update type was neither correspondence nor comment." -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich." - -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 -msgid "Updated" -msgstr "Malkovich" - -#: etc/initialdata:132 etc/initialdata:206 -msgid "User Defined" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "User ID" -msgstr "User ID" - -#: html/Elements/SelectUsers:25 -msgid "User Id" -msgstr "User Id" - -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 -msgid "User Rights" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:252 -#. ($msg) -msgid "User could not be created: %1" -msgstr "Malkovich be Malkovich: %1" - -#: lib/RT/User_Overlay.pm:296 -msgid "User created" -msgstr "Malkovich" - -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 -msgid "User defined groups" -msgstr "Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 -msgid "User loaded" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "User view" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 -msgid "Username" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectNewGroupMembers:25 html/Admin/Elements/Tabs:31 html/Admin/Groups/Members.html:54 html/Admin/Queues/People.html:67 html/Admin/index.html:28 html/User/Groups/Members.html:57 -msgid "Users" -msgstr "Malkovich" - -#: html/Admin/Users/index.html:64 -msgid "Users matching search criteria" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Tickets_Overlay_SQL.pm:494 -msgid "Valid Query" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomField:56 -msgid "Values" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:84 -msgid "Watch" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:85 -msgid "WatchAsAdminCc" -msgstr "Malkovich" - -#: html/Admin/Elements/QueueTabs:41 -msgid "Watchers" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "WebEncoding" -msgstr "Malkovich" - -#: lib/RT/Date.pm:390 -msgid "Wed." -msgstr "Wed." - -#: etc/initialdata:521 -msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" -msgstr "When a Malkovich Malkovich by Malkovich, Malkovich Malkovich to the Malkovich" - -#: etc/initialdata:485 -msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" -msgstr "When a Malkovich Malkovich by Malkovich, Malkovich Malkovich to the Malkovich" - -#: etc/initialdata:146 -msgid "When a ticket is created" -msgstr "When a Malkovich is Malkovich" - -#: etc/initialdata:418 -msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" -msgstr "When a Malkovich is Malkovich, Malkovich the Malkovich and Malkovich of the Malkovich Malkovich Malkovich" - -#: etc/initialdata:151 -msgid "When anything happens" -msgstr "Malkovich Malkovich" - -#: etc/initialdata:199 -msgid "Whenever a ticket is resolved" -msgstr "Malkovich a Malkovich is Malkovich" - -#: etc/initialdata:185 -msgid "Whenever a ticket's owner changes" -msgstr "Malkovich a Malkovich's Malkovich" - -#: etc/initialdata:193 -msgid "Whenever a ticket's queue changes" -msgstr "Malkovich a Malkovich's Malkovich" - -#: etc/initialdata:170 -msgid "Whenever a ticket's status changes" -msgstr "Malkovich a Malkovich's Malkovich" - -#: etc/initialdata:207 -msgid "Whenever a user-defined condition occurs" -msgstr "Malkovich a user-Malkovich Malkovich" - -#: etc/initialdata:164 -msgid "Whenever comments come in" -msgstr "Malkovich Malkovich in" - -#: etc/initialdata:157 -msgid "Whenever correspondence comes in" -msgstr "Malkovich Malkovich Malkovich in" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 -msgid "Work" -msgstr "Work" - -#: NOT FOUND IN SOURCE -msgid "WorkPhone" -msgstr "Malkovich" - -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 -msgid "Worked" -msgstr "Malkovich" - -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "MALKOVICH Malkovich a Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3059 -msgid "You already own this ticket" -msgstr "Malkovich Malkovich Malkovich" - -#: html/autohandler:142 -msgid "You are not an authorized user" -msgstr "Malkovich a Malkovich" - -#: NOT FOUND IN SOURCE -msgid "You can access it with the Download button on the right." -msgstr "Malkovich it with the Malkovich on the Malkovich." - -#: lib/RT/Ticket_Overlay.pm:2941 -msgid "You can only reassign tickets that you own or that are unowned" -msgstr "Malkovich Malkovich Malkovich Malkovich or Malkovich Malkovich" - -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 -#. ($num, $queue) -msgid "You found %1 tickets in queue %2" -msgstr "Malkovich %1 Malkovich in Malkovich %2" - -#: html/NoAuth/Logout.html:30 -msgid "You have been logged out of RT." -msgstr "Malkovich Malkovich of RT." - -#: html/SelfService/Display.html:79 -msgid "You have no permission to create tickets in that queue." -msgstr "Malkovich no Malkovich to Malkovich in that Malkovich." - -#: lib/RT/Ticket_Overlay.pm:2095 -msgid "You may not create requests in that queue." -msgstr "Malkovich Malkovich Malkovich in Malkovich." - -#: html/NoAuth/Logout.html:34 -msgid "You're welcome to login again" -msgstr "You're Malkovich to Malkovich" - -#: etc/initialdata:502 -msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "Malkovich Malkovich Malkovich by %1. Malkovich Malkovich be Malkovich." - -#: etc/initialdata:540 -msgid "Your request has been approved." -msgstr "Malkovich Malkovich Malkovich." - -#: etc/initialdata:445 -msgid "Your request was rejected." -msgstr "Malkovich Malkovich." - -#: html/autohandler:177 -msgid "Your username or password is incorrect" -msgstr "Malkovich or Malkovich is Malkovich" - -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 -msgid "Zip" -msgstr "Zip" - -#: html/User/Elements/DelegateRights:58 -#. ($right->PrincipalObj->Object->SelfDescription) -msgid "as granted to %1" -msgstr "as Malkovich to %1" - -#: html/SelfService/Closed.html:27 -msgid "closed" -msgstr "Malkovich" - -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 -msgid "contains" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "content" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "content-type" -msgstr "Malkovich-type" - -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 -msgid "days" -msgstr "days" - -#: lib/RT/Queue_Overlay.pm:64 -msgid "deleted" -msgstr "Malkovich" - -#: html/Search/Elements/PickBasics:33 -msgid "does not match" -msgstr "Malkovich" - -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 -msgid "doesn't contain" -msgstr "doesn't Malkovich" - -#: html/Elements/SelectEqualityOperator:37 -msgid "equal to" -msgstr "Malkovich to" - -#: NOT FOUND IN SOURCE -msgid "filename" -msgstr "Malkovich" - -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 -msgid "greater than" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:196 -#. ($self->Name) -msgid "group '%1'" -msgstr "Malkovich '%1'" - -#: lib/RT/Date.pm:315 -msgid "hours" -msgstr "Malkovich" - -#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickBasics:49 html/Search/Elements/PickBasics:80 html/Search/Elements/PickBasics:97 html/Search/Elements/PickCFs:37 -msgid "is" -msgstr "is" - -#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickBasics:50 html/Search/Elements/PickBasics:81 html/Search/Elements/PickBasics:98 html/Search/Elements/PickCFs:38 -msgid "isn't" -msgstr "isn't" - -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 -msgid "less than" -msgstr "Malkovich" - -#: html/Search/Elements/PickBasics:32 -msgid "matches" -msgstr "Malkovich" - -#: lib/RT/Date.pm:311 -msgid "min" -msgstr "min" - -#: html/Ticket/Update.html:42 -msgid "minutes" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "modifications\\n\\n" -msgstr "Malkovich\\n\\n" - -#: lib/RT/Date.pm:327 -msgid "months" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:59 -msgid "new" -msgstr "new" - -#: html/Admin/Elements/EditCustomFields:42 -msgid "no name" -msgstr "no name" - -#: html/Admin/Elements/EditScrips:42 -msgid "no value" -msgstr "no Malkovich" - -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 -msgid "none" -msgstr "none" - -#: html/Elements/SelectEqualityOperator:37 -msgid "not equal to" -msgstr "Malkovich to" - -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 -msgid "open" -msgstr "open" - -#: lib/RT/Group_Overlay.pm:201 -#. ($self->Name, $user->Name) -msgid "personal group '%1' for user '%2'" -msgstr "Malkovich '%1' Malkovich '%2'" - -#: lib/RT/Group_Overlay.pm:209 -#. ($queue->Name, $self->Type) -msgid "queue %1 %2" -msgstr "Malkovich %1 %2" - -#: lib/RT/Queue_Overlay.pm:63 -msgid "rejected" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:62 -msgid "resolved" -msgstr "Malkovich" - -#: lib/RT/Date.pm:307 -msgid "sec" -msgstr "sec" - -#: lib/RT/Queue_Overlay.pm:61 -msgid "stalled" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:204 -#. ($self->Type) -msgid "system %1" -msgstr "Malkovich %1" - -#: lib/RT/Group_Overlay.pm:215 -#. ($self->Type) -msgid "system group '%1'" -msgstr "Malkovich '%1'" - -#: html/Elements/Error:42 html/SelfService/Error.html:41 -msgid "the calling component did not specify why" -msgstr "the Malkovich Malkovich Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "Malkovich #%1" - -#: lib/RT/Group_Overlay.pm:212 -#. ($self->Instance, $self->Type) -msgid "ticket #%1 %2" -msgstr "Malkovich #%1 %2" - -#: lib/RT/Group_Overlay.pm:218 -#. ($self->Id) -msgid "undescribed group %1" -msgstr "Malkovich Malkovich %1" - -#: lib/RT/Group_Overlay.pm:193 -#. ($user->Object->Name) -msgid "user %1" -msgstr "user %1" - -#: lib/RT/Date.pm:323 -msgid "weeks" -msgstr "Malkovich" - -#: lib/RT/Date.pm:331 -msgid "years" -msgstr "Malkovich" - diff --git a/rt/lib/RT/I18N/no.po b/rt/lib/RT/I18N/no.po deleted file mode 100644 index 113239724..000000000 --- a/rt/lib/RT/I18N/no.po +++ /dev/null @@ -1,6563 +0,0 @@ -# -msgid "" -msgstr "" -"Project-Id-Version: RT 3.5.x\n" -"POT-Creation-Date: 2003-04-01 06:06+0200\n" -"PO-Revision-Date: 2006-12-20 20:59+0100\n" -"Last-Translator: Ronny Pettersen <ronny.pettersen@edb.com>\n" -"Language-Team: rt-devel <rt-devel@lists.bestpractical.com>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: html/Widgets/SavedSearch:70 -#. ($self->{CurrentSearch}{Object}->Description) -msgid " %1 deleted." -msgstr "" - -#: html/Widgets/SavedSearch:47 -#. ($self->{CurrentSearch}{Description}, $args->{Description}) -msgid " %1 renamed to %2." -msgstr "" - -#: html/Widgets/SavedSearch:60 -#. ($args->{Description}) -msgid " %1 saved." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "#" -msgstr "#" - -#: NOT FOUND IN SOURCE -msgid "#%1" -msgstr "#%1" - -#: html/Approvals/Elements/Approve:48 html/Approvals/Elements/ShowDependency:71 html/SelfService/Display.html:46 html/Ticket/Display.html:47 html/Ticket/Display.html:51 -#. ($Ticket->id, $Ticket->Subject) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -#. ($ticket->Id, $ticket->Subject) -#. ($TicketObj->Id, $TicketObj->Subject) -msgid "#%1: %2" -msgstr "#%1: %2" - -#: html/Elements/ShowSearch:105 -msgid "$1" -msgstr "$1" - -#: lib/RT/Record.pm:940 -#. ($label) -msgid "$prefix %1" -msgstr "$prefix %1" - -#: lib/RT/URI/fsck_com_rt.pm:256 -#. ($self->ObjectType, $self->Object->Id) -msgid "%1 #%2" -msgstr "" - -#: lib/RT/Date.pm:365 -#. ($s, $time_unit) -msgid "%1 %2" -msgstr "%1 %2" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 %3" -msgstr "%1 %2 %3" - -#: lib/RT/Date.pm:401 -#. ($self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)) -msgid "%1 %2 %3 %4:%5:%6 %7" -msgstr "%1 %3. %2 %7 %4:%5:%6" - -#: lib/RT/Record.pm:1685 lib/RT/Transaction_Overlay.pm:647 lib/RT/Transaction_Overlay.pm:690 -#. ($cf->Name, $new_value->Content) -#. ($field, $self->NewValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 added" -msgstr "%1 %2 lagt til" - -#: lib/RT/Date.pm:362 -#. ($s, $time_unit) -msgid "%1 %2 ago" -msgstr "%1 %2 siden" - -#: lib/RT/Record.pm:1692 lib/RT/Transaction_Overlay.pm:654 -#. ($cf->Name, $old_content, $new_value->Content) -#. ($field, $self->OldValue, $self->NewValue) -msgid "%1 %2 changed to %3" -msgstr "%1 %2 ble endret til %3" - -#: lib/RT/Record.pm:1689 lib/RT/Transaction_Overlay.pm:650 lib/RT/Transaction_Overlay.pm:696 -#. ($cf->Name, $old_value->Content) -#. ($field, $self->OldValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 deleted" -msgstr "%1 %2 slettet" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 of group %3" -msgstr "%1 %2 av gruppen %3" - -#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:63 html/Ticket/Elements/PreviewScrips:103 -#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) -msgid "%1 %2 with template %3" -msgstr "%1 %2 med mal %3" - -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 this ticket\\n" -msgstr "%1 (%2) %3 denne saken\\n" - -#: html/Ticket/Elements/ShowAttachments:72 -#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) -msgid "%1 (%2) by %3" -msgstr "" - -#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:108 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:66 -#. (loc($DefaultStatus)) -#. (loc($Ticket->Status())) -#. (loc($TicketObj->Status)) -#. ($TicketObj->OwnerObj->Name()) -msgid "%1 (Unchanged)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 - %2 shown" -msgstr "%1 - %2 vist" - -#: bin/rt-crontool:237 bin/rt-crontool:244 bin/rt-crontool:250 -#. ("--search-argument", "--search") -#. ("--condition-argument", "--condition") -#. ("--action-argument", "--action") -msgid "%1 - An argument to pass to %2" -msgstr "%1 - Et parameter til %2" - -#: bin/rt-crontool:262 -#. ("--verbose") -msgid "%1 - Output status updates to STDOUT" -msgstr "%1 - Viser statusoppdateringer til STDOUT" - -#: bin/rt-crontool:253 -#. ("--template-id") -msgid "%1 - Specify id of the template you want to use" -msgstr "" - -#: bin/rt-crontool:256 -#. ("--transaction") -msgid "%1 - Specify if you want to use either 'first' or 'last' tarnsaction" -msgstr "" - -#: bin/rt-crontool:247 -#. ("--action") -msgid "%1 - Specify the action module you want to use" -msgstr "%1 - Oppgi kommandomodulen du ønsker å bruke" - -#: bin/rt-crontool:241 -#. ("--condition") -msgid "%1 - Specify the condition module you want to use" -msgstr "%1 - Oppgi betingelsesmodulen du ønsker å bruke" - -#: bin/rt-crontool:234 -#. ("--search") -msgid "%1 - Specify the search module you want to use" -msgstr "%1 - Oppgi søkemodulen du ønsker å bruke" - -#: bin/rt-crontool:259 -#. ("--transaction-type") -msgid "%1 - Specify the type of a transaction you want to use" -msgstr "" - -#: html/Elements/Footer:56 -#. ('»|«', $RT::VERSION, '2006', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -msgid "%1 RT %2 Copyright 1996-%3 %4." -msgstr "" - -#: lib/RT/ScripAction_Overlay.pm:150 -#. ($self->Id) -msgid "%1 ScripAction loaded" -msgstr "%1 KommandoScript lastet" - -#: lib/RT/Record.pm:1722 -#. ($args{'Value'}, $cf->Name) -msgid "%1 added as a value for %2" -msgstr "%1 ble lagt til som verdi for %2" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on" -msgstr "%1 alias trenger en ReferanseId å jobbe mot" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on " -msgstr "%1 alias trenger en saksnummer å jobbe mot " - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on (from %2) %3" -msgstr "%1 alias trenger et saksnummer å jobbe mot (fra %2) %3" - -#: lib/RT/Link_Overlay.pm:144 lib/RT/Link_Overlay.pm:151 -#. ($args{'Base'}) -#. ($args{'Target'}) -msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "%1 ser ut til å være et lokalt objekt, men kan ikke finnes i databasen" - -#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:531 -#. ($self->BriefDescription , $self->CreatorObj->Name) -#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) -msgid "%1 by %2" -msgstr "%1 av %2" - -#: lib/RT/Transaction_Overlay.pm:788 lib/RT/Transaction_Overlay.pm:797 lib/RT/Transaction_Overlay.pm:800 -#. ($self->Field , $q1->Name , $q2->Name) -#. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") -msgid "%1 changed from %2 to %3" -msgstr "%1 ble endret fra %2 til %3" - -#: html/Search/Build.html:213 -#. ($Description) -msgid "%1 copy" -msgstr "%1 kopi" - -#: lib/RT/Record.pm:944 -msgid "%1 could not be set to %2." -msgstr "%1 kunne ikke settes til %2." - -#: NOT FOUND IN SOURCE -msgid "%1 couldn't init a transaction (%2)\\n" -msgstr "%1 kunne ikke starte en transaksjon (%2)\\n" - -#: lib/RT/Ticket_Overlay.pm:2787 -#. ($self) -msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." -msgstr "%1 kunne ikke sette status til løst. RT-basen kan være inkonsistent." - -#: lib/RT/Transaction_Overlay.pm:571 -#. ($obj_type) -msgid "%1 created" -msgstr "%1 opprettet" - -#: lib/RT/Transaction_Overlay.pm:576 -#. ($obj_type) -msgid "%1 deleted" -msgstr "%1 slettet" - -#: etc/initialdata:593 -msgid "%1 highest priority tickets I own" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I own..." -msgstr "Mine %1 høyst prioriterte saker..." - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I requested..." -msgstr "Mine %1 høyst prioriterte forespørsler..." - -#: bin/rt-crontool:229 -#. ($0) -msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." -msgstr "%1 er et verktøy for å behandle saker fra eksterne verktøy, slik som cron." - -#: lib/RT/Queue_Overlay.pm:863 -#. ($principal->Object->Name, $args{'Type'}) -msgid "%1 is no longer a %2 for this queue." -msgstr "%1 er ikke lenger en %2 for denne køen." - -#: NOT FOUND IN SOURCE -msgid "%1 is no longer a %2 for this ticket." -msgstr "%1 er ikke lenger en %2 for denne saken." - -#: NOT FOUND IN SOURCE -msgid "%1 is no longer a value for custom field %2" -msgstr "%1 er ikke lenger en verdi for fleksifeltet %2" - -#: NOT FOUND IN SOURCE -msgid "%1 isn't a valid Queue id." -msgstr "%1 er ikke et gyldig saksnummer." - -#: html/Ticket/Elements/ShowTime:47 html/Ticket/Elements/ShowTime:49 -#. ($minutes) -msgid "%1 min" -msgstr "%1 min" - -#: etc/initialdata:601 -msgid "%1 newest unowned tickets" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 not shown" -msgstr "%1 vises ikke" - -#: lib/RT/CustomField_Overlay.pm:893 -msgid "%1 objects" -msgstr "" - -#: html/User/Elements/DelegateRights:97 -#. (loc($ObjectType =~ /^RT::(.*)$/)) -msgid "%1 rights" -msgstr "%1 rettigheter" - -#: NOT FOUND IN SOURCE -msgid "%1 succeeded\\n" -msgstr "%1 var velykket\\n" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for $MessageId" -msgstr "%1 er ukjent type for $saksnummer" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for %2" -msgstr "%1 er ukjent type for %2" - -#: NOT FOUND IN SOURCE -msgid "%1 was created without a CurrentUser\\n" -msgstr "%1 ble opprettet uten en aktiv bruker\\n" - -#: lib/RT/Action/ResolveMembers.pm:63 -#. (ref $self) -msgid "%1 will resolve all members of a resolved group ticket." -msgstr "%1 vil løse alle medlemmer av en løst gruppesak." - -#: NOT FOUND IN SOURCE -msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." -msgstr "%1 vil stoppe en [lokal] BASE hvis den er avhengig av/medlem av en tilkoblet sak." - -#: lib/RT/CustomField_Overlay.pm:894 -msgid "%1's %2 objects" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:895 -msgid "%1's %2's %3 objects" -msgstr "" - -#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:57 -#. ($object->Name) -#. ($Object->Name) -msgid "%1's saved searches" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:481 -#. ($self) -msgid "%1: no attachment specified" -msgstr "%1: ingen vedlegg oppgitt" - -#: html/Ticket/Elements/ShowTransactionAttachments:78 -#. ($size) -msgid "%1b" -msgstr "%1b" - -#: html/Ticket/Elements/ShowTransactionAttachments:75 -#. (int( $size / 102.4 ) / 10) -msgid "%1k" -msgstr "%1k" - -#: html/Ticket/Elements/ShowTime:49 -#. (sprintf("%.1f",$minutes / 60)) -msgid "%quant(%1,hour)" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1142 -#. ($args{'Status'}) -msgid "'%1' is an invalid value for status" -msgstr "'%1' er en ugyldig statusverdi" - -#: NOT FOUND IN SOURCE -msgid "'%1' not a recognized action. " -msgstr "'%1' er ikke en kjent handling" - -#: NOT FOUND IN SOURCE -msgid "(Check box to delete group member)" -msgstr "(Merk for å slette gruppemedlem)" - -#: NOT FOUND IN SOURCE -msgid "(Check box to delete scrip)" -msgstr "(Merk for å slette Scrip)" - -#: html/Admin/Elements/EditCustomFieldValues:50 html/Admin/Elements/EditQueueWatchers:50 html/Admin/Elements/EditScrips:56 html/Admin/Elements/EditTemplates:57 html/Admin/Groups/Members.html:73 html/Elements/EditLinks:54 html/Ticket/Elements/EditPeople:67 html/User/Groups/Members.html:76 -msgid "(Check box to delete)" -msgstr "(Merk for å slette)" - -#: NOT FOUND IN SOURCE -msgid "(Check boxes to delete)" -msgstr "(Merk boksene for å slette)" - -#: html/Ticket/Elements/PreviewScrips:99 -msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "" - -#: html/Ticket/Elements/PreviewScrips:123 -msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "" - -#: html/Ticket/Create.html:218 -msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(Skriv inn referansenummer eller URler, separert med mellomrom)" - -#: html/Admin/Queues/Modify.html:75 html/Admin/Queues/Modify.html:81 -#. ($RT::CorrespondAddress) -#. ($RT::CommentAddress) -msgid "(If left blank, will default to %1)" -msgstr "(Settes til standard %1 hvis blank)" - -#: NOT FOUND IN SOURCE -msgid "(No Value)" -msgstr "(Ingen Verdi)" - -#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 -msgid "(No custom fields)" -msgstr "(Ingen fleksifelt)" - -#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 -msgid "(No members)" -msgstr "(Ingen medlemmer)" - -#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:48 -msgid "(No scrips)" -msgstr "(Ingen scrips)" - -#: html/Admin/Elements/EditTemplates:52 -msgid "(No templates)" -msgstr "(Ingen maler)" - -#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 -msgid "(None)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will receive future updates.)" -msgstr "(Sender en kopi av denne oppdateringen til en kommaseparert liste med epostaddresser. Endrer <b>ikke</b> hvem som vil motta fremtidige oppdatreinger.)" - -#: NOT FOUND IN SOURCE -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will recieve future updates.)" -msgstr "(Sender en kopi av denne oppdateringen til en kommaseparert liste med epostaddresser. Endrer <b>ikke</b> hvem som vil motta fremtidige oppdateringer.)" - -#: html/Ticket/Update.html:90 -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <b>will</b> receive future updates.)" -msgstr "(Sender en kopi av denne oppdateringen til en kommaseparert liste av administrative epostaddresser. Disse vil <b>vil</b> motta fremtidige oppdateringer.)" - -#: html/Ticket/Create.html:103 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will receive future updates.)" -msgstr "(Sender en kopi av denne oppdateringen til en komma-separert liste av epostaddresser. Endrer <b>ikke</b> hvem som vil motta fremtidige oppdateringer.)" - -#: NOT FOUND IN SOURCE -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will recieve future updates.)" -msgstr "(Sender en kopi av denne oppdateringen til en kommaseparert liste med epost-addresser. Endrer <b->ikke</b> hvem som vi motta fremtige utfordrer dere nå." - -#: html/Ticket/Update.html:86 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people <b>will</b> receive future updates.)" -msgstr "(Sender en kopi av dette oppdateringen til en kommaseparert liste med epostaddresser. Disse <b>vill</b> motta fremtidige oppdateringer.)" - -#: html/Ticket/Create.html:93 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "" - -#: html/Admin/Elements/EditScrip:96 -msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "" - -#: html/Ticket/Elements/EditWatchers:60 html/Ticket/Elements/ShowUserEntry:53 -msgid "(Will not be sent email)" -msgstr "" - -#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 -msgid "(empty)" -msgstr "(tom)" - -#: html/Admin/Users/index.html:60 -msgid "(no name listed)" -msgstr "(navn ikke oppgitt)" - -#: NOT FOUND IN SOURCE -msgid "(no subject)" -msgstr "(ingen overskrift)" - -#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:69 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:54 html/Search/Chart:56 html/Search/Elements/Chart:76 lib/RT/Transaction_Overlay.pm:591 -msgid "(no value)" -msgstr "(ingen verdi)" - -#: html/Admin/Elements/EditCustomFieldValues:47 -msgid "(no values)" -msgstr "" - -#: html/Elements/EditLinks:132 html/Ticket/Elements/BulkLinks:49 -msgid "(only one ticket)" -msgstr "(bare en sak)" - -#: html/Elements/RT__Ticket/ColumnMap:149 -msgid "(pending approval)" -msgstr "(Venter på godkjenning)" - -#: html/Elements/RT__Ticket/ColumnMap:152 -msgid "(pending other Collection)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(pending other tickets)" -msgstr "(venter på andre saker)" - -#: NOT FOUND IN SOURCE -msgid "(requestor's group)" -msgstr "(kundens gruppe)" - -#: html/Admin/Users/Modify.html:71 -msgid "(required)" -msgstr "(nødvendig)" - -#: html/Ticket/Elements/ShowTransactionAttachments:82 -msgid "(untitled)" -msgstr "(ingen tittel)" - -#: html/Ticket/Elements/Reminders:133 -msgid "(yyyy/mm/dd)" -msgstr "" - -#: html/Elements/EditCustomFieldSelect:57 -msgid "-" -msgstr "" - -#: bin/rt-crontool:95 -msgid "--transaction argument could be only 'first' or 'last'" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I own..." -msgstr "Mine 25 høyst prioriterte saker..." - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I requested..." -msgstr "Mine 25 høyst priorterte forespørsler..." - -#: html/Ticket/Elements/ShowBasics:53 -msgid "<% $Ticket->Status%>" -msgstr "<% $Ticket-:Status%>" - -#: html/Elements/SelectTicketTypes:48 -msgid "<% $_ %>" -msgstr "<% $_ %>" - -#: html/Search/Elements/SelectLinks:48 -msgid "<%$_%>" -msgstr "" - -#: html/Search/Elements/DisplayOptions:73 -msgid "<%$field%>" -msgstr "" - -#: html/Elements/CreateTicket:47 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" class=\"button\" value=\"New ticket in\" /> %1" -msgstr "" - -#: docs/design_docs/string-extraction-guide.txt:54 lib/RT/StyleGuide.pod:787 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" value=\"New ticket in\"> %1" -msgstr "<input type=\"submit\" value=\"Ny sak i\"> %1" - -#: NOT FOUND IN SOURCE -msgid "??????" -msgstr "??????" - -#: etc/initialdata:218 -msgid "A blank template" -msgstr "En tom mal" - -#: html/Admin/Users/Modify.html:371 -msgid "A password was not set, so user won't be able to login." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE Deleted" -msgstr "ACE slettet" - -#: NOT FOUND IN SOURCE -msgid "ACE Loaded" -msgstr "ACE lastet" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be deleted" -msgstr "ACE kunne ikke slettes" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be found" -msgstr "fant ikke ACE" - -#: lib/RT/ACE_Overlay.pm:174 lib/RT/Principal_Overlay.pm:219 -msgid "ACE not found" -msgstr "ACE ikke funnet" - -#: lib/RT/ACE_Overlay.pm:853 -msgid "ACEs can only be created and deleted." -msgstr "ACEr kan bare opprettes og slettes." - -#: html/Search/Elements/SelectAndOr:46 -msgid "AND" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Aborting to avoid unintended ticket modifications.\\n" -msgstr "Avbryter for å ungå uånsket saksendring" - -#: html/User/Elements/Tabs:53 -msgid "About me" -msgstr "Om meg" - -#: html/Admin/Users/Modify.html:106 -msgid "Access control" -msgstr "Aksesskontroll" - -#: html/Admin/Elements/EditScrip:65 -msgid "Action" -msgstr "Handling" - -#: lib/RT/Scrip_Overlay.pm:172 -#. ($args{'ScripAction'}) -msgid "Action %1 not found" -msgstr "Handling %1 finnes ikke" - -#: NOT FOUND IN SOURCE -msgid "Action committed." -msgstr "Handling skrevet." - -#: bin/rt-crontool:171 -msgid "Action committed.\\n" -msgstr "" - -#: lib/RT/Scrip_Overlay.pm:168 -msgid "Action is mandatory argument" -msgstr "" - -#: bin/rt-crontool:167 -msgid "Action prepared..." -msgstr "Handling forberedt" - -#: html/Search/Build.html:85 -msgid "Add" -msgstr "" - -#: html/Search/Bulk.html:92 -msgid "Add AdminCc" -msgstr "Legg til AdminCc" - -#: html/Search/Bulk.html:88 -msgid "Add Cc" -msgstr "Legg til Cc" - -#: html/Search/Elements/EditFormat:49 -msgid "Add Columns" -msgstr "" - -#: html/Search/Elements/PickCriteria:46 -msgid "Add Criteria" -msgstr "" - -#: html/Ticket/Create.html:147 html/Ticket/Update.html:116 -msgid "Add More Files" -msgstr "Legg til flere filer" - -#: NOT FOUND IN SOURCE -msgid "Add Next State" -msgstr "Legg til neste status" - -#: html/Search/Bulk.html:84 -msgid "Add Requestor" -msgstr "Legg til kunde" - -#: html/Admin/Elements/AddCustomFieldValue:46 -msgid "Add Value" -msgstr "Legg til verdi" - -#: NOT FOUND IN SOURCE -msgid "Add a Scrip to this queue" -msgstr "Legg til Scrip i denne køen" - -#: NOT FOUND IN SOURCE -msgid "Add a Scrip which will apply to all queues" -msgstr "Legg til et Scrip som gjelder for alle køer" - -#: NOT FOUND IN SOURCE -msgid "Add a keyword selection to this queue" -msgstr "Legg til et nøkkelordvalg på denne køen" - -#: NOT FOUND IN SOURCE -msgid "Add a new a global scrip" -msgstr "Legg til et globalt Scrip" - -#: NOT FOUND IN SOURCE -msgid "Add a scrip to this queue" -msgstr "Legg til et Scrip til denne køen" - -#: html/Admin/Global/Scrip.html:83 -msgid "Add a scrip which will apply to all queues" -msgstr "Legg til et Scrip som vil gjelde for alle køer" - -#: html/Search/Build.html:109 html/Search/Build.html:94 -msgid "Add and Search" -msgstr "" - -#: html/Search/Bulk.html:124 -msgid "Add comments or replies to selected tickets" -msgstr "Legg til kommentarer eller svar til denne saken" - -#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 -msgid "Add members" -msgstr "Legg til medlemmer" - -#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 -msgid "Add new watchers" -msgstr "Legg til overvåkere" - -#: html/Search/Build.html:85 -msgid "Add these terms to your search" -msgstr "" - -#: html/Search/Bulk.html:158 -msgid "Add values" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "Add, delete and modify custom field values for objects" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "AddNextState" -msgstr "AddNextState" - -#: lib/RT/Queue_Overlay.pm:763 -#. ($args{'Type'}) -msgid "Added principal as a %1 for this queue" -msgstr "La til primær som en %1 for denne køen" - -#: lib/RT/Ticket_Overlay.pm:1455 -#. ($self->loc($args{'Type'})) -msgid "Added principal as a %1 for this ticket" -msgstr "La til primær som en %1 for denne saken" - -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 -msgid "Address1" -msgstr "Adresse1" - -#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 -msgid "Address2" -msgstr "Adresse2" - -#: html/Ticket/Create.html:98 -msgid "Admin Cc" -msgstr "Admin Cc" - -#: etc/initialdata:295 -msgid "Admin Comment" -msgstr "Admin Kommentar" - -#: etc/initialdata:274 -msgid "Admin Correspondence" -msgstr "Admin-korrespondanse" - -#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 -msgid "Admin queues" -msgstr "Adminkøer" - -#: NOT FOUND IN SOURCE -msgid "Admin users" -msgstr "Adminbrukere" - -#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 -msgid "Admin/Global configuration" -msgstr "Admin/Global konfigurasjon" - -#: NOT FOUND IN SOURCE -msgid "Admin/Groups" -msgstr "Admin/Grupper" - -#: NOT FOUND IN SOURCE -msgid "Admin/Queue/Basics" -msgstr "Admin/Køer/Grunnleggende" - -#: NOT FOUND IN SOURCE -msgid "AdminAllPersonalGroups" -msgstr "AdminAllePersonalGrupper" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:113 -msgid "AdminCc" -msgstr "AdminCc" - -#: NOT FOUND IN SOURCE -msgid "AdminComment" -msgstr "AdminKommentar" - -#: NOT FOUND IN SOURCE -msgid "AdminCorrespondence" -msgstr "AdminKorrespondanse" - -#: lib/RT/CustomField_Overlay.pm:106 -msgid "AdminCustomField" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "AdminCustomFields" -msgstr "AdminFleksifelt" - -#: lib/RT/Group_Overlay.pm:163 -msgid "AdminGroup" -msgstr "AdminGruppe" - -#: lib/RT/Group_Overlay.pm:165 -msgid "AdminGroupMembership" -msgstr "AdminGruppeMedlemskap" - -#: lib/RT/System.pm:80 -msgid "AdminOwnPersonalGroups" -msgstr "AdminEgnePersonligeGrupper" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "AdminQueue" -msgstr "AdminKø" - -#: lib/RT/System.pm:81 -msgid "AdminUsers" -msgstr "AdminBrukere" - -#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 -msgid "Administrative Cc" -msgstr "Administrativ Cc" - -#: NOT FOUND IN SOURCE -msgid "Admins" -msgstr "Admin" - -#: html/Ticket/Elements/Tabs:216 -msgid "Advanced" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Advanced Search" -msgstr "Avansert Søk" - -#: html/Elements/SelectDateRelation:57 -msgid "After" -msgstr "Etter" - -#: NOT FOUND IN SOURCE -msgid "Age" -msgstr "Alder" - -#: html/Search/Elements/PickCriteria:52 -msgid "Aggregator" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Alias" -msgstr "Alias" - -#: NOT FOUND IN SOURCE -msgid "Alias for" -msgstr "Alias for" - -#: etc/initialdata:363 -msgid "All Approvals Passed" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "All Custom Fields" -msgstr "Alle Fleksifelt" - -#: html/Admin/Queues/index.html:75 -msgid "All Queues" -msgstr "Alle køer" - -#: NOT FOUND IN SOURCE -msgid "Always sends a message to the requestors independent of message sender" -msgstr "Send alltid en melding til kunden uavhengig av meldingssender" - -#: html/Search/Elements/EditQuery:56 -msgid "And/Or" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 -msgid "Applies to" -msgstr "" - -#: html/Search/Edit.html:64 -msgid "Apply" -msgstr "" - -#: html/Search/Edit.html:64 -msgid "Apply your changes" -msgstr "" - -#: html/Elements/Tabs:77 -msgid "Approval" -msgstr "Godkjennelse" - -#: html/Approvals/Display.html:65 html/Approvals/Elements/ShowDependency:63 html/Approvals/index.html:86 -#. ($Ticket->Id, $Ticket->Subject) -#. ($ticket->id, $msg) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Approval #%1: %2" -msgstr "Godkjennelse #%1: %2" - -#: html/Approvals/index.html:75 -#. ($ticket->Id) -msgid "Approval #%1: Notes not recorded due to a system error" -msgstr "Godkjenning # %1: Notater kunne ikke lagres pga. systemfeil" - -#: html/Approvals/index.html:73 -#. ($ticket->Id) -msgid "Approval #%1: Notes recorded" -msgstr "Godkjenning #%1: Notater lagret" - -#: NOT FOUND IN SOURCE -msgid "Approval Details" -msgstr "Godkjenning - Detaljer" - -#: etc/initialdata:351 -msgid "Approval Passed" -msgstr "" - -#: etc/initialdata:374 -msgid "Approval Rejected" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Approval diagram" -msgstr "Godkjenningsdiagram" - -#: html/Approvals/Elements/Approve:69 -msgid "Approve" -msgstr "Godkjenn" - -#: etc/initialdata:504 -msgid "Approver's notes: %1" -msgstr "Godkjenners notater: %1" - -#: lib/RT/Date.pm:444 -msgid "Apr." -msgstr "Apr." - -#: NOT FOUND IN SOURCE -msgid "April" -msgstr "April" - -#: html/Search/Elements/DisplayOptions:81 -msgid "Asc" -msgstr "" - -#: html/Elements/SelectSortOrder:56 -msgid "Ascending" -msgstr "Stigende" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "Assign and remove custom fields" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "AssignCustomFields" -msgstr "" - -#: html/Search/Bulk.html:142 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:116 -msgid "Attach" -msgstr "Legg Ved" - -#: html/SelfService/Create.html:92 html/Ticket/Create.html:143 -msgid "Attach file" -msgstr "Legg ved fil" - -#: html/SelfService/Update.html:75 html/Ticket/Create.html:131 html/Ticket/Update.html:94 -msgid "Attached file" -msgstr "Vedlagt fil" - -#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 -#. ($Attachment) -msgid "Attachment '%1' could not be loaded" -msgstr "Vedlegg '%1' kunne ikke lastes" - -#: lib/RT/Transaction_Overlay.pm:489 -msgid "Attachment created" -msgstr "Vedlegg opprettet" - -#: lib/RT/Tickets_Overlay.pm:1945 -msgid "Attachment filename" -msgstr "Vedleggsnavn" - -#: html/Ticket/Elements/ShowAttachments:47 -msgid "Attachments" -msgstr "Vedlegg" - -#: lib/RT/Attributes_Overlay.pm:171 -msgid "Attribute Deleted" -msgstr "" - -#: lib/RT/Date.pm:448 -msgid "Aug." -msgstr "Aug." - -#: NOT FOUND IN SOURCE -msgid "August" -msgstr "August" - -#: NOT FOUND IN SOURCE -msgid "AuthSystem" -msgstr "AutSystem" - -#: etc/initialdata:221 -msgid "Autoreply" -msgstr "Autosvar" - -#: etc/initialdata:72 -msgid "Autoreply To Requestors" -msgstr "Autosvar Til Kunde" - -#: NOT FOUND IN SOURCE -msgid "AutoreplyToRequestors" -msgstr "AutosvarTilKunde" - -#: html/Widgets/SelectionBox:185 -msgid "Available" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bad PGP Signature: %1\\n" -msgstr "Ugyldig PGP-signatur: %1\\n" - -#: NOT FOUND IN SOURCE -msgid "Bad attachment id. Couldn't find attachment '%1'\\n" -msgstr "Ugyldig vedleggsid. Kunne ikke finne vedlegg '%1'\\n" - -#: NOT FOUND IN SOURCE -msgid "Bad data in %1" -msgstr "Ugyldig data i %1" - -#: NOT FOUND IN SOURCE -msgid "Bad transaction number for attachment. %1 should be %2\\n" -msgstr "Ugyldig transaksjonsnummer for vedlegg. %1 skulle vært %2\\n" - -#: html/Admin/Elements/CustomFieldTabs:65 html/Admin/Elements/GroupTabs:60 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/UserTabs:58 html/Ticket/Elements/Tabs:113 html/User/Elements/GroupTabs:59 -msgid "Basics" -msgstr "Detaljer" - -#: html/Ticket/Update.html:88 -msgid "Bcc" -msgstr "Bcc" - -#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:89 -msgid "Be sure to save your changes" -msgstr "Sørg for å lagre endringene dine" - -#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:361 -msgid "Before" -msgstr "Før" - -#: NOT FOUND IN SOURCE -msgid "Begin Approval" -msgstr "Begynn Godkjenning" - -#: html/Elements/Logo:47 -msgid "Best Practical Solutions, LLC corporate logo" -msgstr "" - -#: etc/initialdata:217 -msgid "Blank" -msgstr "Blank" - -#: html/Search/Elements/EditFormat:84 -msgid "Bold" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bookmarkable URL for this search" -msgstr "URL som kan brukes som bokmerke for dette søket" - -#: html/Search/Results.html:79 -msgid "Bookmarkable link" -msgstr "" - -#: html/Ticket/Elements/ShowHistory:64 html/Ticket/Elements/ShowHistory:69 -msgid "Brief headers" -msgstr "Begrens headere" - -#: html/Ticket/Elements/Tabs:227 -msgid "Bulk Update" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bulk ticket update" -msgstr "Masseoppdatering av saker" - -#: lib/RT/User_Overlay.pm:1853 -msgid "Can not modify system users" -msgstr "Kan ikke endre systembrukere" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "Can this principal see this queue" -msgstr "Kan denne primæren se denne køen" - -#: lib/RT/CustomField_Overlay.pm:379 -msgid "Can't add a custom field value without a name" -msgstr "Kan ikke legge til en verdi for et fleksifelt uten navn" - -#: html/Admin/CustomFields/Objects.html:86 -#. ($Class) -msgid "Can't find a collection class for '%1'" -msgstr "" - -#: html/Search/Build.html:286 -msgid "Can't find a saved search to work with" -msgstr "" - -#: lib/RT/Link_Overlay.pm:159 -msgid "Can't link a ticket to itself" -msgstr "Kan ikke koble en sak til seg selv" - -#: NOT FOUND IN SOURCE -msgid "Can't merge into a merged ticket. You should never get this error" -msgstr "Kan ikke flette inn i en flettet sak. Denne meldingen bør ikke forekomme" - -#: html/Widgets/SavedSearch:63 -#. (loc($self->{SearchType})) -msgid "Can't save %1" -msgstr "" - -#: html/Search/Build.html:290 -msgid "Can't save this search" -msgstr "" - -#: lib/RT/Record.pm:1282 lib/RT/Record.pm:1358 -msgid "Can't specifiy both base and target" -msgstr "Kan ikke spesifisere både base og mål." - -#: html/autohandler:204 -#. ($msg) -msgid "Cannot create user: %1" -msgstr "Kunne ikke oprette bruker: %1" - -#: html/Admin/Elements/AddCustomFieldValue:62 html/Admin/Elements/EditCustomFieldValues:58 -msgid "Category" -msgstr "" - -#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:88 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:83 lib/RT/ACE_Overlay.pm:112 -msgid "Cc" -msgstr "Cc" - -#: html/SelfService/Prefs.html:52 -msgid "Change password" -msgstr "Endre passord" - -#: html/Elements/Submit:78 -msgid "Check All" -msgstr "" - -#: html/SelfService/Update.html:78 html/Ticket/Create.html:134 html/Ticket/Update.html:97 -msgid "Check box to delete" -msgstr "Merk for å slette" - -#: html/Admin/Elements/SelectRights:55 -msgid "Check box to revoke right" -msgstr "Merk for å trekke tilbake rettighet" - -#: html/Elements/EditLinks:148 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:223 html/Ticket/Elements/BulkLinks:64 -msgid "Children" -msgstr "Barn" - -#: html/NoAuth/js/util.js:201 -msgid "Choose a date" -msgstr "" - -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 -msgid "City" -msgstr "By" - -#: html/Elements/Submit:80 -msgid "Clear All" -msgstr "" - -#: html/Helpers/CalPopup.html:51 -msgid "Close window" -msgstr "" - -#: html/Ticket/Elements/ShowDates:68 -msgid "Closed" -msgstr "Lukket" - -#: NOT FOUND IN SOURCE -msgid "Closed Tickets" -msgstr "Lukkede Saker" - -#: NOT FOUND IN SOURCE -msgid "Closed requests" -msgstr "Lukkede forespørsler" - -#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:78 -msgid "Closed tickets" -msgstr "Lukkede saker" - -#: NOT FOUND IN SOURCE -msgid "Code" -msgstr "Kode" - -#: lib/RT/CustomField_Overlay.pm:89 -msgid "Combobox: Select or enter multiple values" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:90 -msgid "Combobox: Select or enter one value" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:91 -msgid "Combobox: Select or enter up to %1 values" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Command not understood!\\n" -msgstr "Kunne ikke tolke kommando!\\n" - -#: html/Ticket/Elements/ShowTransaction:190 html/Ticket/Elements/Tabs:185 -msgid "Comment" -msgstr "Kommenter" - -#: html/Admin/Queues/Modify.html:79 -msgid "Comment Address" -msgstr "Kommentaraddresse" - -#: NOT FOUND IN SOURCE -msgid "Comment not recorded" -msgstr "Kommentaren ble ikke lagret" - -#: lib/RT/Queue_Overlay.pm:111 -msgid "Comment on tickets" -msgstr "Kommenter saker" - -#: lib/RT/Queue_Overlay.pm:111 -msgid "CommentOnTicket" -msgstr "KommenterSak" - -#: NOT FOUND IN SOURCE -msgid "Comments" -msgstr "Kommentarer" - -#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:75 -msgid "Comments (Not sent to requestors)" -msgstr "Kommentarer (Ikke send til kunder)" - -#: html/Search/Bulk.html:128 -msgid "Comments (not sent to requestors)" -msgstr "Kommentarer (ikke sendt til kunder)" - -#: NOT FOUND IN SOURCE -msgid "Comments about %1" -msgstr "Kommentarer til %1" - -#: html/Admin/Users/Modify.html:225 html/Ticket/Elements/ShowRequestor:67 -msgid "Comments about this user" -msgstr "Kommentarer om denne brukeren" - -#: lib/RT/Transaction_Overlay.pm:634 -msgid "Comments added" -msgstr "La til kommentarer " - -#: lib/RT/Action/Generic.pm:175 -msgid "Commit Stubbed" -msgstr "Lagring forkortet" - -#: NOT FOUND IN SOURCE -msgid "Compile Restrictions" -msgstr "Kompilatorrestriksjoner" - -#: html/Admin/Elements/EditScrip:59 -msgid "Condition" -msgstr "Forutsetning" - -#: lib/RT/Scrip_Overlay.pm:184 -msgid "Condition is mandatory argument" -msgstr "" - -#: bin/rt-crontool:151 -msgid "Condition matches..." -msgstr "Forutsetning gjelder..." - -#: lib/RT/Scrip_Overlay.pm:188 -msgid "Condition not found" -msgstr "Forutsetning ikke funnet" - -#: html/Elements/Tabs:84 -msgid "Configuration" -msgstr "Konfigurasjon" - -#: html/SelfService/Prefs.html:54 -msgid "Confirm" -msgstr "Bekreft" - -#: NOT FOUND IN SOURCE -msgid "ContactInfoSystem" -msgstr "KontaktInfoSystem" - -#: NOT FOUND IN SOURCE -msgid "Contacted date '%1' could not be parsed" -msgstr "Kontatdato '%1' kunne ikke tolkes" - -#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 -msgid "Content" -msgstr "Innhold" - -#: html/Elements/SelectAttachmentField:49 -msgid "Content-Type" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Coould not create group" -msgstr "Kunne ikke opprette gruppen" - -#: html/Search/Elements/EditSearches:65 -msgid "Copy" -msgstr "" - -#: etc/initialdata:286 -msgid "Correspondence" -msgstr "Korrespondanse" - -#: NOT FOUND IN SOURCE -msgid "Correspondence Address" -msgstr "Korrespondanseaddresse" - -#: lib/RT/Transaction_Overlay.pm:630 -msgid "Correspondence added" -msgstr "Korrespondanse lagt til" - -#: NOT FOUND IN SOURCE -msgid "Correspondence not recorded" -msgstr "Korrespondansen ble ikke lagret" - -#: NOT FOUND IN SOURCE -msgid "Could not add new custom field value for ticket. " -msgstr "Kunne ikke legge til nye fleksifeltverdier for saken. " - -#: NOT FOUND IN SOURCE -msgid "Could not add new custom field value for ticket. %1 " -msgstr "Kunne ikke legge til nye fleksifeltverdier for saken. %1 " - -#: lib/RT/Record.pm:1707 -msgid "Could not add new custom field value. " -msgstr "" - -#: lib/RT/Record.pm:1660 -#. (, $value_msg) -msgid "Could not add new custom field value. %1 " -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3048 lib/RT/Ticket_Overlay.pm:3056 lib/RT/Ticket_Overlay.pm:3073 -msgid "Could not change owner. " -msgstr "Kunne ikke endre eier. " - -#: html/Admin/CustomFields/Modify.html:161 -#. ($msg) -msgid "Could not create CustomField" -msgstr "Kunne ikke opprette fleksifelt" - -#: html/Admin/Elements/EditCustomField:113 -#. ($msg) -msgid "Could not create CustomField: %1" -msgstr "" - -#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:494 lib/RT/Group_Overlay.pm:501 -msgid "Could not create group" -msgstr "Kunne ikke opprette gruppe" - -#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 -#. ($msg) -msgid "Could not create template: %1" -msgstr "Kunne ikke opprette mal: %1" - -#: lib/RT/Ticket_Overlay.pm:1075 lib/RT/Ticket_Overlay.pm:407 -msgid "Could not create ticket. Queue not set" -msgstr "Kunne ikke opprette sak. Kø ikke satt" - -#: lib/RT/User_Overlay.pm:255 lib/RT/User_Overlay.pm:269 lib/RT/User_Overlay.pm:278 lib/RT/User_Overlay.pm:287 lib/RT/User_Overlay.pm:296 lib/RT/User_Overlay.pm:310 lib/RT/User_Overlay.pm:320 lib/RT/User_Overlay.pm:496 -msgid "Could not create user" -msgstr "Kunne ikke opprette bruker" - -#: NOT FOUND IN SOURCE -msgid "Could not create watcher for requestor" -msgstr "Kunne ikke opprette overvåker for kunde" - -#: NOT FOUND IN SOURCE -msgid "Could not find a ticket with id %1" -msgstr "Kunne ikke finne en sak med id %1" - -#: NOT FOUND IN SOURCE -msgid "Could not find group %1." -msgstr "Kunne ikke finne gruppen %1." - -#: lib/RT/Queue_Overlay.pm:741 lib/RT/Ticket_Overlay.pm:1423 -msgid "Could not find or create that user" -msgstr "Kunne ikke finne eller lage den brukeren" - -#: lib/RT/Queue_Overlay.pm:802 lib/RT/Ticket_Overlay.pm:1504 -msgid "Could not find that principal" -msgstr "Kunne ikke finne den primæren" - -#: NOT FOUND IN SOURCE -msgid "Could not find user %1." -msgstr "Kunne ikke finne brukeren %1." - -#: html/Admin/CustomFields/Objects.html:69 -msgid "Could not load CustomField %1" -msgstr "" - -#: html/Admin/Groups/Members.html:112 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 -msgid "Could not load group" -msgstr "Kunne ikke hente gruppen" - -#: lib/RT/SavedSearch.pm:119 -#. ($privacy) -msgid "Could not load object for %1" -msgstr "" - -#: lib/RT/SavedSearch.pm:197 -msgid "Could not load search attribute" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:761 -#. ($args{'Type'}) -msgid "Could not make that principal a %1 for this queue" -msgstr "Kunne ikke sette den primæren som %1 for denne køen" - -#: lib/RT/Ticket_Overlay.pm:1444 -#. ($self->loc($args{'Type'})) -msgid "Could not make that principal a %1 for this ticket" -msgstr "Kunne ikke sette den primæren som %1 for denne saken" - -#: lib/RT/Queue_Overlay.pm:860 -#. ($args{'Type'}) -msgid "Could not remove that principal as a %1 for this queue" -msgstr "Kunne ikke fjerne den primæren som %1 for denne køen" - -#: NOT FOUND IN SOURCE -msgid "Could not remove that principal as a %1 for this ticket" -msgstr "Knne ikke fjære den primæren som %1 for denne saken" - -#: lib/RT/User_Overlay.pm:191 -msgid "Could not set user info" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:159 -msgid "Couldn't add attachment" -msgstr "" - -#: lib/RT/Group_Overlay.pm:1003 -msgid "Couldn't add member to group" -msgstr "Kunne ikke legge til medlemmmer i gruppen" - -#: lib/RT/Record.pm:1719 lib/RT/Record.pm:1771 -#. ($Msg) -msgid "Couldn't create a transaction: %1" -msgstr "Kunne ikke opprette en transaksjon: %1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't figure out what to do from gpg's reply\\n" -msgstr "Kunne ikke tolke gpgs svar\\n" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find group\\n" -msgstr "Kunne ikke finne gruppen\\n" - -#: lib/RT/Record.pm:953 -msgid "Couldn't find row" -msgstr "Kunne ikke finne raden" - -#: lib/RT/Group_Overlay.pm:977 -msgid "Couldn't find that principal" -msgstr "Kunne ikke finne primæren" - -#: lib/RT/CustomField_Overlay.pm:409 -msgid "Couldn't find that value" -msgstr "Kunne ikke finne verdien" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find that watcher" -msgstr "Kunne ikke finne den overvåkern" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find user\\n" -msgstr "Kunne ikke finne bruker\\n" - -#: lib/RT/CurrentUser.pm:145 -#. ($self->Id) -msgid "Couldn't load %1 from the users database.\\n" -msgstr "Kunne ikke laste %1 fra brukerdatabasen.\\n" - -#: html/Admin/CustomFields/UserRights.html:149 -#. ($id) -msgid "Couldn't load Class %1" -msgstr "" - -#: html/Admin/CustomFields/GroupRights.html:107 -#. ($id) -msgid "Couldn't load CustomField %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load KeywordSelects." -msgstr "Kunne ikke laste NøkkelordValg." - -#: NOT FOUND IN SOURCE -msgid "Couldn't load RT config file '%1' %2" -msgstr "Kunne ikke laste RTs konfigurasjonsfil '%1' %2" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load Scrips." -msgstr "Kunne ikke laste Scripsene." - -#: lib/RT/Ticket_Overlay.pm:2016 -#. ($self->Id) -msgid "Couldn't load copy of ticket #%1." -msgstr "" - -#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 -#. ($id) -msgid "Couldn't load group %1" -msgstr "Kunne ikke laste gruppen %1" - -#: lib/RT/Link_Overlay.pm:202 lib/RT/Link_Overlay.pm:211 lib/RT/Link_Overlay.pm:238 -msgid "Couldn't load link" -msgstr "Kunne ikke laste linken" - -#: html/Admin/Elements/ObjectCustomFields:83 html/Admin/Queues/CustomFields.html:59 html/Admin/Users/CustomFields.html:59 -#. ($id) -msgid "Couldn't load object %1" -msgstr "" - -#: html/Admin/Queues/People.html:142 -#. ($id) -msgid "Couldn't load queue" -msgstr "Kunne ikke laste køen" - -#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 -#. ($id) -msgid "Couldn't load queue %1" -msgstr "Kunne ikke laste køen %1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load scrip" -msgstr "Kunne ikke laste scripet" - -#: html/Admin/Elements/EditScrip:126 html/Admin/Elements/EditScrip:167 -#. ($id) -msgid "Couldn't load scrip #%1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load template" -msgstr "Kunne ikke finne mal" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load that user (%1)" -msgstr "Kunne ikke laste den brukeren (%1)" - -#: html/SelfService/Display.html:158 lib/RT/Action/CreateTickets.pm:680 -#. ($id) -msgid "Couldn't load ticket '%1'" -msgstr "Kunne ikke laste saken '%1'" - -#: lib/RT/Ticket_Overlay.pm:2643 -#. ($args{'URI'}) -msgid "Couldn't resolve '%1' into a URI." -msgstr "" - -#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 -msgid "Country" -msgstr "Land" - -#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:133 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:65 html/Ticket/Create.html:168 html/Ticket/Create.html:235 -msgid "Create" -msgstr "Opprett" - -#: etc/initialdata:135 -msgid "Create Tickets" -msgstr "Opprett Saker" - -#: html/Admin/CustomFields/Modify.html:150 html/Admin/Elements/EditCustomField:96 -msgid "Create a CustomField" -msgstr "Oprett et fleksifelt" - -#: html/Admin/Queues/CustomField.html:69 -#. ($QueueObj->Name()) -msgid "Create a CustomField for queue %1" -msgstr "Opprett et fleksifelt for køen %1" - -#: NOT FOUND IN SOURCE -msgid "Create a CustomField that applies to all queues" -msgstr "Opprett et fleksifelt for alle køer" - -#: NOT FOUND IN SOURCE -msgid "Create a new Custom Field" -msgstr "Opprett et nytt fleksifelt" - -#: NOT FOUND IN SOURCE -msgid "Create a new global Scrip" -msgstr "Opprett et globalt Scrip" - -#: NOT FOUND IN SOURCE -msgid "Create a new global scrip" -msgstr "Opprett et nytt globalt scrip" - -#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 -msgid "Create a new group" -msgstr "Opprett en ny gruppe" - -#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 -msgid "Create a new personal group" -msgstr "Opprett en ny personlig gruppe" - -#: NOT FOUND IN SOURCE -msgid "Create a new queue" -msgstr "Opprett en ny kø" - -#: NOT FOUND IN SOURCE -msgid "Create a new scrip" -msgstr "Opprett et nytt scrip" - -#: NOT FOUND IN SOURCE -msgid "Create a new template" -msgstr "Opprett en ny mal" - -#: html/Ticket/Create.html:47 html/Ticket/Create.html:51 html/Ticket/Create.html:60 -msgid "Create a new ticket" -msgstr "Opprett en ny sak" - -#: html/Admin/Users/Modify.html:252 html/Admin/Users/Modify.html:314 -msgid "Create a new user" -msgstr "Opprett en ny bruker" - -#: html/Admin/Queues/Modify.html:125 -msgid "Create a queue" -msgstr "Opprett en ny kø" - -#: NOT FOUND IN SOURCE -msgid "Create a queue called" -msgstr "Opprett en kø kalt" - -#: NOT FOUND IN SOURCE -msgid "Create a request" -msgstr "Opprett en forespørsel" - -#: html/Admin/Queues/Scrip.html:89 -#. ($QueueObj->Name) -msgid "Create a scrip for queue %1" -msgstr "Opprett et scrip for køen %1" - -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 -msgid "Create a template" -msgstr "Opprett en mal" - -#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 -msgid "Create a ticket" -msgstr "Opprett en sak" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1 / %2 / %3 " -msgstr "Opprettelse feilet: %1 / %2 / %3" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1/%2/%3" -msgstr "Opprettelse feilet: %1/%2/%3" - -#: etc/initialdata:137 -msgid "Create new tickets based on this scrip's template" -msgstr "Opprett nye saker basert på dette scripets mal" - -#: html/SelfService/Create.html:105 -msgid "Create ticket" -msgstr "Opprett sak" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "Create tickets in this queue" -msgstr "Opprett saker i denne køen" - -#: lib/RT/CustomField_Overlay.pm:106 -msgid "Create, delete and modify custom fields" -msgstr "Opprett, slett og modifiser fleksifelt" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "Create, delete and modify queues" -msgstr "Opprett, slett og endre køer" - -#: NOT FOUND IN SOURCE -msgid "Create, delete and modify the members of any user's personal groups" -msgstr "Opprett, slett og modifiser medlemmene av en brukers personlige grupper" - -#: lib/RT/System.pm:80 -msgid "Create, delete and modify the members of personal groups" -msgstr "Opprett, slett og modifiser medlemmene av personlige grupper" - -#: lib/RT/System.pm:81 -msgid "Create, delete and modify users" -msgstr "Opprett, slett og modifiser brukere" - -#: lib/RT/System.pm:87 -msgid "CreateSavedSearch" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "CreateTicket" -msgstr "OpprettSak" - -#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1169 -msgid "Created" -msgstr "Opprettet" - -#: html/Admin/CustomFields/Modify.html:163 html/Admin/Elements/EditCustomField:117 -#. ($CustomFieldObj->Name()) -msgid "Created CustomField %1" -msgstr "Opprettet Fleksifelt %1" - -#: html/Tools/Reports/Elements/Tabs:63 -msgid "Created in a date range" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created template %1" -msgstr "Opprettet malen %1" - -#: html/Tools/Reports/CreatedByDates.html:52 -msgid "Created tickets in period, grouped by status" -msgstr "" - -#: html/Search/Elements/PickBasics:102 -msgid "Creator" -msgstr "" - -#: html/Elements/EditLinks:49 -msgid "Current Links" -msgstr "Eksisterende Forhold" - -#: html/Admin/Elements/EditScrips:51 -msgid "Current Scrips" -msgstr "Eksisterende Scrips" - -#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 -msgid "Current members" -msgstr "Eksisterende medlemmer" - -#: html/Admin/Elements/SelectRights:51 -msgid "Current rights" -msgstr "Eksisterende rettigheter" - -#: html/Search/Elements/EditQuery:47 -msgid "Current search" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Current search criteria" -msgstr "Eksisterende søkekriterier" - -#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 -msgid "Current watchers" -msgstr "Eksisterende overvåkere" - -#: NOT FOUND IN SOURCE -msgid "Custom Field #%1" -msgstr "Fleksifeltet #%1" - -#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:205 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:56 -msgid "Custom Fields" -msgstr "Fleksifelt" - -#: html/Admin/CustomFields/index.html:60 -#. ($lookup) -msgid "Custom Fields for %1" -msgstr "" - -#: html/Admin/Elements/EditScrip:107 -msgid "Custom action cleanup code" -msgstr "Avsluttningskode" - -#: html/Admin/Elements/EditScrip:103 -msgid "Custom action preparation code" -msgstr "Forberedelseskode" - -#: html/Admin/Elements/EditScrip:99 -msgid "Custom condition" -msgstr "Forutsetning" - -#: NOT FOUND IN SOURCE -msgid "Custom field %1 %2 %3" -msgstr "Fleksifeltet %1 %2 %3" - -#: lib/RT/Tickets_Overlay.pm:2424 -#. ($CF->Name) -msgid "Custom field %1 has a value." -msgstr "Fleksifeltet %1 har en verdi." - -#: lib/RT/Tickets_Overlay.pm:2420 -#. ($CF->Name) -msgid "Custom field %1 has no value." -msgstr "Fleksifeltet %1 har ingen verdi." - -#: lib/RT/Record.pm:1592 lib/RT/Record.pm:1754 -#. ($args{'Field'}) -msgid "Custom field %1 not found" -msgstr "Fleksifeltet %1 kunne ikke finnes" - -#: lib/RT/Report/Tickets.pm:118 lib/RT/Report/Tickets.pm:121 -#. ($cf) -#. ($obj->Name) -msgid "Custom field '%1'" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Custom field deleted" -msgstr "Fleksifeltet slettet" - -#: NOT FOUND IN SOURCE -msgid "Custom field not found" -msgstr "Fleksifeltet kunne ikke finnes" - -#: lib/RT/CustomField_Overlay.pm:1157 -#. ($args{'Content'}, $self->Name) -msgid "Custom field value %1 could not be found for custom field %2" -msgstr "Verdien %1 for fleksifeltet %2 kunne ikke finnes" - -#: NOT FOUND IN SOURCE -msgid "Custom field value changed from %1 to %2" -msgstr "Fleksifeltets verdi endret fra %1 til %2" - -#: lib/RT/CustomField_Overlay.pm:419 -msgid "Custom field value could not be deleted" -msgstr "Fleksifeltets verdi kunne ikke slettes" - -#: lib/RT/CustomField_Overlay.pm:1169 -msgid "Custom field value could not be found" -msgstr "Fleksifeltets verdi kunne ikke finnes" - -#: lib/RT/CustomField_Overlay.pm:1171 lib/RT/CustomField_Overlay.pm:417 -msgid "Custom field value deleted" -msgstr "Fleksifeltverdi slettet" - -#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:638 -msgid "CustomField" -msgstr "FleksiFelt" - -#: html/Prefs/MyRT.html:78 html/Prefs/Quicksearch.html:70 html/Prefs/Search.html:75 -msgid "Customize" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Data error" -msgstr "Datafeil" - -#: html/SelfService/Display.html:61 html/Ticket/Create.html:203 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 -msgid "Dates" -msgstr "Datoer" - -#: lib/RT/Date.pm:452 -msgid "Dec." -msgstr "Des." - -#: NOT FOUND IN SOURCE -msgid "December" -msgstr "Desember" - -#: NOT FOUND IN SOURCE -msgid "Default Autoresponse Template" -msgstr "Standard Autosvarmal" - -#: etc/initialdata:222 -msgid "Default Autoresponse template" -msgstr "Standard Autosvarmal" - -#: html/Tools/Offline.html:61 -msgid "Default Queue" -msgstr "" - -#: html/Tools/Offline.html:70 -msgid "Default Requestor" -msgstr "" - -#: etc/initialdata:296 -msgid "Default admin comment template" -msgstr "Standard Adminkommentarmal" - -#: etc/initialdata:275 -msgid "Default admin correspondence template" -msgstr "Standard Adminkorrespondensemal" - -#: etc/initialdata:287 -msgid "Default correspondence template" -msgstr "Standard korrespondensemal" - -#: etc/initialdata:253 -msgid "Default transaction template" -msgstr "Standard transaksjonsmal" - -#: NOT FOUND IN SOURCE -msgid "Default: %1/%2 changed from %3 to %4" -msgstr "Standard: %1/%2 endret seg fra %3 til %4" - -#: html/User/Delegation.html:46 html/User/Delegation.html:49 -msgid "Delegate rights" -msgstr "Deleger rettigheter" - -#: lib/RT/System.pm:84 -msgid "Delegate specific rights which have been granted to you." -msgstr "Deleger spesifikke rettigheter som har blitt gitt til deg." - -#: lib/RT/System.pm:84 -msgid "DelegateRights" -msgstr "DelegerRettigheter" - -#: html/User/Elements/Tabs:59 -msgid "Delegation" -msgstr "Delegering" - -#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 html/Widgets/SelectionBox:204 -msgid "Delete" -msgstr "Slett" - -#: html/Admin/Elements/EditTemplates:79 -msgid "Delete Template" -msgstr "" - -#: lib/RT/SavedSearch.pm:220 -#. ($msg) -msgid "Delete failed: %1" -msgstr "" - -#: html/Admin/Elements/EditScrips:74 -msgid "Delete selected scrips" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "Delete tickets" -msgstr "Slett saker" - -#: html/Search/Bulk.html:159 -msgid "Delete values" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "DeleteTicket" -msgstr "SlettSak" - -#: lib/RT/SavedSearch.pm:218 -msgid "Deleted search" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Deleting this object could break referential integrity" -msgstr "Sletting av dette objektet kan føre til inkonsistens" - -#: lib/RT/Queue_Overlay.pm:394 -msgid "Deleting this object would break referential integrity" -msgstr "Sletting av dette objektet vil føre til inkonsistens" - -#: lib/RT/User_Overlay.pm:512 -msgid "Deleting this object would violate referential integrity" -msgstr "Sletting av dette objektet ville føre til inkonsistens" - -#: NOT FOUND IN SOURCE -msgid "Deleting this object would violate referential integrity." -msgstr "Sletting av dette objektet ville føre til inkonsisistens." - -#: NOT FOUND IN SOURCE -msgid "Deleting this object would violate referential integrity. That's bad." -msgstr "Sletting av dette objektet ville føre til inkonsistens. Det er uheldig." - -#: html/Approvals/Elements/Approve:73 -msgid "Deny" -msgstr "Nekt" - -#: html/Elements/EditLinks:140 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:221 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 -msgid "Depended on by" -msgstr "Avhengighet fra" - -#: NOT FOUND IN SOURCE -msgid "Dependencies: \\n" -msgstr "Avhengigheter: \\n" - -#: lib/RT/Transaction_Overlay.pm:718 -#. ($value) -msgid "Dependency by %1 added" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:758 -#. ($value) -msgid "Dependency by %1 deleted" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:715 -#. ($value) -msgid "Dependency on %1 added" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:755 -#. ($value) -msgid "Dependency on %1 deleted" -msgstr "" - -#: html/Elements/EditLinks:136 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:220 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 -msgid "Depends on" -msgstr "Avhengig av" - -#: NOT FOUND IN SOURCE -msgid "DependsOn" -msgstr "AvhengigAv" - -#: html/Search/Elements/DisplayOptions:86 -msgid "Desc" -msgstr "" - -#: html/Elements/SelectSortOrder:56 -msgid "Descending" -msgstr "Synkende" - -#: html/SelfService/Create.html:100 html/Ticket/Create.html:152 -msgid "Describe the issue below" -msgstr "Beskriv problemet under" - -#: html/Admin/CustomFields/Modify.html:61 html/Admin/Elements/AddCustomFieldValue:57 html/Admin/Elements/EditCustomField:60 html/Admin/Elements/EditCustomFieldValues:56 html/Admin/Elements/EditScrip:55 html/Admin/Elements/ModifyTemplate:57 html/Admin/Groups/Modify.html:71 html/Admin/Queues/Modify.html:69 html/Search/Elements/EditSearches:56 html/User/Groups/Modify.html:70 -msgid "Description" -msgstr "Beskrivelse" - -#: NOT FOUND IN SOURCE -msgid "Details" -msgstr "Detaljer" - -#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 -msgid "Display" -msgstr "Vis" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "Display Access Control List" -msgstr "Vis Rettigheter" - -#: html/Search/Elements/DisplayOptions:46 -msgid "Display Columns" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "Display Scrip templates for this queue" -msgstr "Vis Scrip-maler for denne køen" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "Display Scrips for this queue" -msgstr "Vis Scrip-maler for denne køen" - -#: html/Ticket/Elements/ShowHistory:59 -msgid "Display mode" -msgstr "Visningsmodus" - -#: lib/RT/Group_Overlay.pm:168 -msgid "Display saved searches for this group" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Display ticket #%1" -msgstr "Vis saken #%1" - -#: html/Elements/Footer:61 -msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" -msgstr "" - -#: lib/RT/System.pm:75 -msgid "Do anything and everything" -msgstr "Gjør hva som helst" - -#: html/Elements/Refresh:51 -msgid "Don't refresh this page." -msgstr "Ikke last denne siden på nytt" - -#: NOT FOUND IN SOURCE -msgid "Don't show search results" -msgstr "Ikke vis søkeresultat" - -#: html/Ticket/Elements/ShowTransactionAttachments:82 -msgid "Download" -msgstr "Last ned" - -#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 -msgid "Download as a tab-delimited file" -msgstr "" - -#: html/Elements/SelectDateType:53 html/Ticket/Create.html:209 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/Reminders:133 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1173 -msgid "Due" -msgstr "Innen" - -#: NOT FOUND IN SOURCE -msgid "Due date '%1' could not be parsed" -msgstr "Innendato '%1' kunne ikke tolkes" - -#: NOT FOUND IN SOURCE -msgid "ERROR: Couldn't load ticket '%1': %2.\\n" -msgstr "FEIL: Kunne ikke laste sak '%1': %2.\\n" - -#: html/Elements/Quicksearch:48 html/Elements/ShowSearch:49 html/index.html:107 -msgid "Edit" -msgstr "Rediger" - -#: NOT FOUND IN SOURCE -msgid "Edit Conditions" -msgstr "Rediger Forhold" - -#: html/Search/Bulk.html:149 -msgid "Edit Custom Fields" -msgstr "" - -#: html/Admin/Elements/ObjectCustomFields:92 html/Admin/Queues/CustomFields.html:64 html/Admin/Users/CustomFields.html:64 -#. ($Object->Name) -msgid "Edit Custom Fields for %1" -msgstr "Rediger fleksifelt for %1" - -#: html/Admin/Global/CustomFields/Groups.html:54 -msgid "Edit Custom Fields for all groups" -msgstr "" - -#: html/Admin/Global/CustomFields/Users.html:54 -msgid "Edit Custom Fields for all users" -msgstr "" - -#: html/Admin/Global/CustomFields/Queue-Tickets.html:54 html/Admin/Global/CustomFields/Queue-Transactions.html:54 -msgid "Edit Custom Fields for tickets in all queues" -msgstr "" - -#: html/Search/Bulk.html:188 html/Ticket/ModifyLinks.html:57 -msgid "Edit Links" -msgstr "Rediger Forhold" - -#: html/Search/Edit.html:68 -msgid "Edit Query" -msgstr "" - -#: html/Ticket/Elements/Tabs:214 -msgid "Edit Search" -msgstr "" - -#: html/Admin/Queues/Templates.html:63 -#. ($QueueObj->Name) -msgid "Edit Templates for queue %1" -msgstr "Rediger Maler for køen %1" - -#: NOT FOUND IN SOURCE -msgid "Edit keywords" -msgstr "Rediger nøkkelord" - -#: lib/RT/Group_Overlay.pm:167 -msgid "Edit saved searches for this group" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Edit scrips" -msgstr "Rediger scrips" - -#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 -msgid "Edit system templates" -msgstr "Rediger systemmal" - -#: NOT FOUND IN SOURCE -msgid "Edit templates for %1" -msgstr "Rediger maler for %1" - -#: lib/RT/Group_Overlay.pm:167 -msgid "EditSavedSearches" -msgstr "" - -#: html/Admin/Queues/Modify.html:140 -#. ($QueueObj->Name) -msgid "Editing Configuration for queue %1" -msgstr "Rediger Konfigurasjon for køen %1" - -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for user %1" -msgstr "Redigerer Konfigurasjonen av brukern %1" - -#: html/Admin/CustomFields/Modify.html:167 html/Admin/Elements/EditCustomField:120 -#. ($CustomFieldObj->Name()) -msgid "Editing CustomField %1" -msgstr "Redigerer Fleksifeltet %1" - -#: html/Admin/Groups/Members.html:53 -#. ($Group->Name) -msgid "Editing membership for group %1" -msgstr "Redigerer medlemsskap for gruppen %1" - -#: html/User/Groups/Members.html:150 -#. ($Group->Name) -msgid "Editing membership for personal group %1" -msgstr "Redigerer medlemsskap for den personlige gruppen %1" - -#: NOT FOUND IN SOURCE -msgid "Editing template %1" -msgstr "Redigerer malen %1" - -#: lib/RT/Record.pm:1295 lib/RT/Record.pm:1372 lib/RT/Ticket_Overlay.pm:2518 lib/RT/Ticket_Overlay.pm:2608 -msgid "Either base or target must be specified" -msgstr "Enten base eller mål må oppgis" - -#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 -msgid "Email" -msgstr "Epost" - -#: lib/RT/User_Overlay.pm:235 -msgid "Email address in use" -msgstr "Epostaddresse i bruk" - -#: NOT FOUND IN SOURCE -msgid "EmailAddress" -msgstr "EpostAddresse" - -#: NOT FOUND IN SOURCE -msgid "EmailEncoding" -msgstr "EpostFormat" - -#: html/Admin/CustomFields/Modify.html:98 html/Admin/Elements/EditCustomField:72 -msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "Aktivt (Fjern merkingen for å deaktivere dette fleksifeltet)" - -#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 -msgid "Enabled (Unchecking this box disables this group)" -msgstr "Aktiv (Fjern merkingen for å deaktivere denne gruppen)" - -#: html/Admin/Queues/Modify.html:105 -msgid "Enabled (Unchecking this box disables this queue)" -msgstr "Aktiv (Fjern merkingen for å deaktivere denne køen)" - -#: NOT FOUND IN SOURCE -msgid "Enabled Custom Fields" -msgstr "Aktive Fleksifelt" - -#: html/Admin/Queues/index.html:78 -msgid "Enabled Queues" -msgstr "Aktive Køer" - -#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:350 html/User/Groups/Modify.html:138 -#. (loc_fuzzy($msg)) -msgid "Enabled status %1" -msgstr "Aktiv status %1" - -#: html/Admin/CustomFields/Modify.html:185 html/Admin/Queues/Modify.html:162 -#. (loc_fuzzy($msg)) -msgid "Enabled status: %1" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:64 -msgid "Enter multiple values" -msgstr "Skriv multiple verdier" - -#: html/Elements/EditLinks:126 -msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:65 -msgid "Enter one value" -msgstr "Skriv en verdi" - -#: html/Elements/EditLinks:123 -msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." -msgstr "" - -#: html/Elements/EditLinks:119 html/Search/Bulk.html:189 -msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "Skriv saker og/eller URIer som det skal linkes til. Separer dem med mellomrom" - -#: lib/RT/CustomField_Overlay.pm:66 -msgid "Enter up to %1 values" -msgstr "" - -#: html/Elements/Login:76 html/SelfService/Error.html:46 html/SelfService/Error.html:47 -msgid "Error" -msgstr "Feil" - -#: NOT FOUND IN SOURCE -msgid "Error adding watcher" -msgstr "Feilet ved opprettelse av Overvåker" - -#: lib/RT/Queue_Overlay.pm:672 -msgid "Error in parameters to Queue->AddWatcher" -msgstr "Feil i parameterne til Queue->AddWatcher" - -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Queue->DelWatcher" -msgstr "Feil i parameterne til Queue->DelWatcher" - -#: lib/RT/Queue_Overlay.pm:833 -msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1372 -msgid "Error in parameters to Ticket->AddWatcher" -msgstr "Feil i parameterne til Ticket->AddWatcher" - -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Ticket->DelWatcher" -msgstr "Feil i parameterne til Ticket->DelWatcher" - -#: lib/RT/Ticket_Overlay.pm:1538 -msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "" - -#: bin/rt-crontool:285 -msgid "Escalate tickets" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:57 -msgid "Estimated" -msgstr "" - -#: etc/initialdata:20 -msgid "Everyone" -msgstr "Alle" - -#: bin/rt-crontool:271 -msgid "Example:" -msgstr "Eksempel:" - -#: NOT FOUND IN SOURCE -msgid "ExternalAuthId" -msgstr "EksternAutId" - -#: NOT FOUND IN SOURCE -msgid "ExternalContactInfoId" -msgstr "EksternKontaktInfoId" - -#: html/Admin/Users/Modify.html:99 -msgid "Extra info" -msgstr "Ekstra info" - -#: lib/RT/SavedSearch.pm:177 -msgid "Failed to create search attribute" -msgstr "" - -#: lib/RT/User_Overlay.pm:376 -msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "Kunne ikke finne pseudogruppen 'Privilgerte' brukere." - -#: lib/RT/User_Overlay.pm:383 -msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "Kunne ikke finne 'pseudogruppen 'Upriviligerte' brukere" - -#: bin/rt-crontool:206 -#. ($modname, $@) -msgid "Failed to load module %1. (%2)" -msgstr "Kunne ikke laste modulen %1. (%2)" - -#: lib/RT/SavedSearch.pm:152 -#. ($privacy) -msgid "Failed to load object for %1" -msgstr "" - -#: lib/RT/Date.pm:442 -msgid "Feb." -msgstr "Feb." - -#: NOT FOUND IN SOURCE -msgid "February" -msgstr "Februar" - -#: html/Elements/SelectAttachmentField:50 -msgid "Filename" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:69 -msgid "Fill in multiple text areas" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:74 -msgid "Fill in multiple wikitext areas" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:70 -msgid "Fill in one text area" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:75 -msgid "Fill in one wikitext area" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:107 html/Admin/CustomFields/Modify.html:118 -msgid "Fill in this field with a URL." -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:71 -msgid "Fill in up to %1 text areas" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:76 -msgid "Fill in up to %1 wikitext areas" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Fin" -msgstr "End" - -#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:182 html/Ticket/Elements/EditBasics:97 lib/RT/Tickets_Overlay.pm:1841 -msgid "Final Priority" -msgstr "Endelig Prioritet" - -#: lib/RT/Ticket_Overlay.pm:1164 -msgid "FinalPriority" -msgstr "EndeligPrioritet" - -#: NOT FOUND IN SOURCE -msgid "Find group whose" -msgstr "Finn grupper hvor" - -#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 -msgid "Find groups whose" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Find new/open tickets" -msgstr "Finn nye/åpne saker" - -#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 -msgid "Find people whose" -msgstr "Finn folk hvor" - -#: html/Search/Results.html:147 -msgid "Find tickets" -msgstr "Finn saker" - -#: NOT FOUND IN SOURCE -msgid "Finish Approval" -msgstr "Fullfør godkjennelse" - -#: html/Ticket/Elements/Tabs:81 -msgid "First" -msgstr "Først" - -#: NOT FOUND IN SOURCE -msgid "First page" -msgstr "Første side" - -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:766 -msgid "Foo Bar Baz" -msgstr "Foo Bar Baz" - -#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 -msgid "Foo!" -msgstr "Foo!" - -#: html/Search/Bulk.html:83 -msgid "Force change" -msgstr "Tving gjennom endring" - -#: html/Search/Elements/EditFormat:52 -msgid "Format" -msgstr "" - -#: html/Search/Results.html:145 -#. ($ticketcount) -msgid "Found %quant(%1,ticket)" -msgstr "Fant %quant(%1) sak(er)" - -#: lib/RT/Record.pm:956 -msgid "Found Object" -msgstr "Fant Objektet" - -#: NOT FOUND IN SOURCE -msgid "FreeformContactInfo" -msgstr "FriforkKontaktInfo" - -#: NOT FOUND IN SOURCE -msgid "FreeformMultiple" -msgstr "FriformMultipel" - -#: NOT FOUND IN SOURCE -msgid "FreeformSingle" -msgstr "FriformSingel" - -#: lib/RT/Date.pm:421 -msgid "Fri." -msgstr "Fre." - -#: html/Ticket/Elements/ShowHistory:66 html/Ticket/Elements/ShowHistory:72 -msgid "Full headers" -msgstr "Fulle headere" - -#: html/Tools/Offline.html:85 -msgid "Get template from file" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Getting the current user from a pgp sig\\n" -msgstr "Henter brukerinfo fra pgp signatur\\n" - -#: lib/RT/Transaction_Overlay.pm:684 -#. ($New->Name) -msgid "Given to %1" -msgstr "Gitt til %1" - -#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 -msgid "Global" -msgstr "Global" - -#: html/Admin/Elements/EditCustomFields:55 -msgid "Global Custom Fields" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Global Keyword Selections" -msgstr "Globale Nøkkelordvalg" - -#: NOT FOUND IN SOURCE -msgid "Global Scrips" -msgstr "Globale Scrip" - -#: html/Admin/Global/CustomFields/index.html:59 -msgid "Global custom field configuration" -msgstr "" - -#: html/Admin/Global/MyRT.html:48 -#. ($pane) -msgid "Global portlet %1 saved." -msgstr "" - -#: html/Admin/Elements/SelectTemplate:59 -#. (loc($Template->Name)) -msgid "Global template: %1" -msgstr "Globale maler: %1" - -#: html/Admin/CustomFields/index.html:80 html/Search/Results.html:90 html/Tools/Offline.html:89 -msgid "Go" -msgstr "" - -#: html/Admin/Groups/index.html:67 html/Admin/Groups/index.html:73 html/Admin/Queues/People.html:80 html/Admin/Queues/People.html:84 html/Admin/Queues/index.html:66 html/Admin/Users/index.html:73 html/Elements/RefreshHomepage:48 html/Search/Results.html:74 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 -msgid "Go!" -msgstr "Start!" - -#: NOT FOUND IN SOURCE -msgid "Good pgp sig from %1\\n" -msgstr "Gyldig pgp sig fra %1\\n" - -#: NOT FOUND IN SOURCE -msgid "Goto page" -msgstr "Gå til siden" - -#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 -msgid "Goto ticket" -msgstr "Gå til saken" - -#: NOT FOUND IN SOURCE -msgid "Grand" -msgstr "Stor" - -#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 -msgid "Group" -msgstr "Gruppe" - -#: NOT FOUND IN SOURCE -msgid "Group %1 %2: %3" -msgstr "Gruppen %1 %2: %3" - -#: html/Admin/Elements/CustomFieldTabs:68 html/Admin/Elements/GroupTabs:66 html/Admin/Elements/QueueTabs:82 html/Admin/Elements/SystemTabs:65 html/Admin/Global/index.html:76 -msgid "Group Rights" -msgstr "Grupperettigheter" - -#: lib/RT/Group_Overlay.pm:983 -msgid "Group already has member" -msgstr "Alt medlem av gruppen" - -#: NOT FOUND IN SOURCE -msgid "Group could not be created." -msgstr "Gruppen kunne ikke lastes." - -#: html/Admin/Groups/Modify.html:109 -#. ($create_msg) -msgid "Group could not be created: %1" -msgstr "Gruppen kunne ikke opprettes: %1" - -#: lib/RT/Group_Overlay.pm:521 -msgid "Group created" -msgstr "Gruppen opprettet" - -#: lib/RT/Group_Overlay.pm:1155 -msgid "Group has no such member" -msgstr "Gruppen har ikke det medlemmet" - -#: lib/RT/Group_Overlay.pm:963 lib/RT/Queue_Overlay.pm:748 lib/RT/Queue_Overlay.pm:808 lib/RT/Ticket_Overlay.pm:1430 lib/RT/Ticket_Overlay.pm:1510 -msgid "Group not found" -msgstr "Fant ikke gruppen" - -#: NOT FOUND IN SOURCE -msgid "Group not found.\\n" -msgstr "Fant ikke gruppen.\\n" - -#: NOT FOUND IN SOURCE -msgid "Group not specified.\\n" -msgstr "Ikke spesifisert gruppe.\\n" - -#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:57 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:86 html/Admin/Queues/People.html:104 html/Admin/Users/Memberships.html:53 html/Admin/index.html:67 html/User/Groups/Members.html:88 lib/RT/CustomField_Overlay.pm:1210 -msgid "Groups" -msgstr "Grupper" - -#: lib/RT/Group_Overlay.pm:989 -msgid "Groups can't be members of their members" -msgstr "Grupper kan ikke være medlemmer av sine medlemmer" - -#: html/Admin/Groups/index.html:86 -msgid "Groups matching search criteria" -msgstr "" - -#: html/Ticket/Elements/ShowRequestor:77 -msgid "Groups this user belongs to" -msgstr "" - -#: lib/RT/Interface/CLI.pm:94 lib/RT/Interface/CLI.pm:94 -msgid "Hello!" -msgstr "Hallo!" - -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 -#. ($name) -msgid "Hello, %1" -msgstr "Hallo, %1" - -#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:53 html/Ticket/Elements/Tabs:111 -msgid "History" -msgstr "Historikk" - -#: html/Admin/Groups/History.html:62 -#. ($GroupObj->Name) -msgid "History of the group %1" -msgstr "" - -#: html/Admin/Users/History.html:62 -#. ($UserObj->Name) -msgid "History of the user %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "HomePhone" -msgstr "HjemmeTelefon" - -#: html/Elements/Tabs:65 -msgid "Homepage" -msgstr "Hjemmeside" - -#: html/Elements/SelectTimeUnits:48 -msgid "Hours" -msgstr "" - -#: lib/RT/Base.pm:119 -#. (6) -msgid "I have %quant(%1,concrete mixer)." -msgstr "Jeg har %quant(%1, sementblandere)." - -#: NOT FOUND IN SOURCE -msgid "I have [quant,_1,concrete mixer]." -msgstr "Jeg har [quant,_1,sementblandere]." - -#: html/Search/Build.html:460 lib/RT/Report/Tickets.pm:415 -msgid "I'm lost" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1766 -msgid "Id" -msgstr "Id" - -#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 -msgid "Identity" -msgstr "Identitet" - -#: etc/initialdata:429 -msgid "If an approval is rejected, reject the original and delete pending approvals" -msgstr "Hvis en godkjenner blir avvist, avvis orginalen, og slett ventende godkjenninger" - -#: html/Tools/Offline.html:74 -msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "" - -#: html/Tools/Offline.html:65 -msgid "If no queue is specified, create tickets in this queue." -msgstr "" - -#: bin/rt-crontool:267 -msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." -msgstr "Hvis dette verktøyet var setgid kunne en fiendtlig lokal bruker bruke dette verktøyet for å oppnå administrativ tilgang til RT." - -#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:60 -msgid "If you've updated anything above, be sure to" -msgstr "Hvis du har oppdatert noe over, sørg for at" - -#: lib/RT/Record.pm:947 -msgid "Illegal value for %1" -msgstr "Ugyldig verdig for %1" - -#: lib/RT/Record.pm:950 -msgid "Immutable field" -msgstr "Låst felt" - -#: NOT FOUND IN SOURCE -msgid "Include disabled custom fields in listing." -msgstr "Inkluder deaktiverte fleksifelt i listen." - -#: html/Admin/Groups/index.html:65 -msgid "Include disabled groups in listing." -msgstr "" - -#: html/Admin/Queues/index.html:65 -msgid "Include disabled queues in listing." -msgstr "Inkluder deaktiverte køer i listen." - -#: html/Admin/Users/index.html:71 -msgid "Include disabled users in search." -msgstr "Inkluder deaktiverte brukere i søket." - -#: html/Admin/CustomFields/Modify.html:113 -msgid "Include page" -msgstr "" - -#: html/Search/Build.html:486 lib/RT/Report/Tickets.pm:441 -msgid "Incomplete Query" -msgstr "" - -#: html/Search/Build.html:483 lib/RT/Report/Tickets.pm:438 -msgid "Incomplete query" -msgstr "" - -#: html/Search/Elements/PickBasics:148 lib/RT/Tickets_Overlay.pm:1816 -msgid "Initial Priority" -msgstr "Startprioritet" - -#: lib/RT/Ticket_Overlay.pm:1163 lib/RT/Ticket_Overlay.pm:1165 -msgid "InitialPriority" -msgstr "StartPrioritet" - -#: lib/RT/ScripAction_Overlay.pm:133 -msgid "Input error" -msgstr "Feil i inntasting" - -#: html/Elements/ValidateCustomFields:68 lib/RT/CustomField_Overlay.pm:1021 lib/RT/CustomField_Overlay.pm:1162 -#. ($self->FriendlyPattern) -#. ($CF->FriendlyPattern) -msgid "Input must match %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Interest noted" -msgstr "Interesse registrert" - -#: lib/RT/Ticket_Overlay.pm:3503 -msgid "Internal Error" -msgstr "Intern Feil" - -#: lib/RT/Record.pm:308 -#. ($id->{error_message}) -msgid "Internal Error: %1" -msgstr "Intern Feil: %1" - -#: lib/RT/Group_Overlay.pm:668 -msgid "Invalid Group Type" -msgstr "Ugyldig gruppetype" - -#: lib/RT/Principal_Overlay.pm:161 -msgid "Invalid Right" -msgstr "Ugyldige rettigheter" - -#: NOT FOUND IN SOURCE -msgid "Invalid Type" -msgstr "Ugyldig Type" - -#: lib/RT/Record.pm:952 -msgid "Invalid data" -msgstr "Ugyldig data" - -#: NOT FOUND IN SOURCE -msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "Ugydlig eier. Setter til 'nobody'." - -#: lib/RT/CustomField_Overlay.pm:207 lib/RT/CustomField_Overlay.pm:678 -#. ($msg) -msgid "Invalid pattern: %1" -msgstr "" - -#: lib/RT/Scrip_Overlay.pm:157 lib/RT/Template_Overlay.pm:244 -msgid "Invalid queue" -msgstr "Ugyldig kø" - -#: lib/RT/ACE_Overlay.pm:264 lib/RT/ACE_Overlay.pm:273 lib/RT/ACE_Overlay.pm:279 lib/RT/ACE_Overlay.pm:290 -msgid "Invalid right" -msgstr "Ugyldige rettigheter" - -#: lib/RT/Record.pm:283 -#. ($key) -msgid "Invalid value for %1" -msgstr "Ugyldig verdi for %1" - -#: lib/RT/Record.pm:1610 -msgid "Invalid value for custom field" -msgstr "Ugyldig verdi for fleksifeltet." - -#: lib/RT/Ticket_Overlay.pm:424 -msgid "Invalid value for status" -msgstr "Ugyldig verdi for status" - -#: bin/rt-crontool:268 -msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." -msgstr "Det er ekstremt viktig at ikkepriviligerte brukere ikke har tilgang til dette verktøyet." - -#: bin/rt-crontool:269 -msgid "It is suggested that you create a non-privileged unix user with the correct group membership and RT access to run this tool." -msgstr "Det er anbefalt at du oppretter en upriviligert unixbruker med korrekt gruppemedlemsskap og tilgang til RT for  kjøre dette verktøyet." - -#: bin/rt-crontool:231 -msgid "It takes several arguments:" -msgstr "Det tar flere parametere:" - -#: html/Search/Elements/EditFormat:85 -msgid "Italic" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Items pending my approval" -msgstr "Ting som venter på min godkjenning" - -#: lib/RT/Date.pm:441 -msgid "Jan." -msgstr "Jan." - -#: NOT FOUND IN SOURCE -msgid "January" -msgstr "Januar" - -#: lib/RT/Group_Overlay.pm:166 -msgid "Join or leave this group" -msgstr "Bli med i eller forlat denne gruppen" - -#: lib/RT/Date.pm:447 -msgid "Jul." -msgstr "Jul." - -#: NOT FOUND IN SOURCE -msgid "July" -msgstr "Juli" - -#: html/Ticket/Elements/Tabs:125 -msgid "Jumbo" -msgstr "Total" - -#: lib/RT/Date.pm:446 -msgid "Jun." -msgstr "Jun." - -#: NOT FOUND IN SOURCE -msgid "June" -msgstr "Juni" - -#: NOT FOUND IN SOURCE -msgid "Keyword" -msgstr "Nøkkelord" - -#: NOT FOUND IN SOURCE -msgid "Lang" -msgstr "Språk" - -#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 -msgid "Language" -msgstr "" - -#: html/Search/Elements/EditFormat:79 -msgid "Large" -msgstr "" - -#: html/Ticket/Elements/Tabs:96 -msgid "Last" -msgstr "Siste" - -#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 -msgid "Last Contact" -msgstr "Siste Kontakt" - -#: html/Elements/SelectDateType:50 -msgid "Last Contacted" -msgstr "Sist kontaktet" - -#: NOT FOUND IN SOURCE -msgid "Last Notified" -msgstr "Sist Informert" - -#: html/Elements/SelectDateType:51 -msgid "Last Updated" -msgstr "Sist Oppdatert" - -#: NOT FOUND IN SOURCE -msgid "LastUpdated" -msgstr "SistOppdatert" - -#: html/Search/Elements/PickBasics:103 -msgid "LastUpdatedBy" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:68 -msgid "Left" -msgstr "Igjen" - -#: html/Admin/Users/Modify.html:109 -msgid "Let this user access RT" -msgstr "La denne brukeren få tilgang til RT" - -#: html/Admin/Users/Modify.html:113 -msgid "Let this user be granted rights" -msgstr "La denne brukeren få rettigheter" - -#: NOT FOUND IN SOURCE -msgid "Limiting owner to %1 %2" -msgstr "Begrenser eier til %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Limiting queue to %1 %2" -msgstr "Begrenser køen til %1 %2" - -#: html/Search/Elements/EditFormat:68 -msgid "Link" -msgstr "" - -#: lib/RT/Record.pm:1306 -msgid "Link already exists" -msgstr "Lenke finnes alt" - -#: lib/RT/Record.pm:1320 -msgid "Link could not be created" -msgstr "Lenke kunne ikke opprettes" - -#: lib/RT/Record.pm:1326 -#. ($TransString) -msgid "Link created (%1)" -msgstr "Lenke opprettet (%1)" - -#: lib/RT/Record.pm:1387 -#. ($TransString) -msgid "Link deleted (%1)" -msgstr "Lenke slettet (%1)" - -#: lib/RT/Record.pm:1393 -msgid "Link not found" -msgstr "Lenke ble ikke funnet" - -#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 -#. ($Ticket->Id) -msgid "Link ticket #%1" -msgstr "Knytt sak #%1" - -#: NOT FOUND IN SOURCE -msgid "Link ticket %1" -msgstr "Knytt sak %1" - -#: html/Admin/CustomFields/Modify.html:102 -msgid "Link values to" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:700 -msgid "Linking. Permission denied" -msgstr "" - -#: html/Ticket/Create.html:216 html/Ticket/Elements/ShowSummary:89 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 -msgid "Links" -msgstr "Lenker" - -#: html/Search/Elements/EditSearches:75 -msgid "Load" -msgstr "" - -#: html/Search/Elements/EditSearches:73 -msgid "Load saved search:" -msgstr "" - -#: lib/RT/System.pm:86 -msgid "LoadSavedSearch" -msgstr "" - -#: html/Admin/Tools/Configuration.html:64 -msgid "Loaded perl modules" -msgstr "" - -#: lib/RT/SavedSearch.pm:111 -#. ($self->Name) -msgid "Loaded search %1" -msgstr "" - -#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 -msgid "Location" -msgstr "Lokasjon" - -#: NOT FOUND IN SOURCE -msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." -msgstr "Logkatalogen %1 ble ikke funnet eller kunne ikke skrives til.\\nRT kan ikke kjøre." - -#: html/Elements/Header:91 -#. ("<span>".$session{'CurrentUser'}->Name."</span>") -msgid "Logged in as %1" -msgstr "Logget inn som %1" - -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:100 html/Elements/Login:68 html/Elements/Login:84 lib/RT/StyleGuide.pod:797 -msgid "Login" -msgstr "Innlogging" - -#: html/Elements/Header:101 -msgid "Logout" -msgstr "Logg av" - -#: lib/RT/CustomField_Overlay.pm:932 -msgid "Lookup type mismatch" -msgstr "" - -#: html/Search/Bulk.html:82 -msgid "Make Owner" -msgstr "Sett Eier" - -#: html/Search/Bulk.html:106 -msgid "Make Status" -msgstr "Sett Status" - -#: html/Search/Bulk.html:114 -msgid "Make date Due" -msgstr "Sett tidsfrist " - -#: html/Search/Bulk.html:116 -msgid "Make date Resolved" -msgstr "Sett løsningsdato" - -#: html/Search/Bulk.html:110 -msgid "Make date Started" -msgstr "Sett startdato" - -#: html/Search/Bulk.html:108 -msgid "Make date Starts" -msgstr "Sett startdato" - -#: html/Search/Bulk.html:112 -msgid "Make date Told" -msgstr "Sett informert dato" - -#: html/Search/Bulk.html:102 -msgid "Make priority" -msgstr "Sett prioritet" - -#: html/Search/Bulk.html:104 -msgid "Make queue" -msgstr "Sett Kø" - -#: html/Search/Bulk.html:100 -msgid "Make subject" -msgstr "Sett Emne" - -#: lib/RT/Group_Overlay.pm:169 -msgid "Make this group visible to user" -msgstr "" - -#: html/Admin/index.html:78 -msgid "Manage custom fields and custom field values" -msgstr "" - -#: html/Admin/index.html:69 -msgid "Manage groups and group membership" -msgstr "Sett grupper og gruppemedlemsskap" - -#: html/Admin/index.html:85 -msgid "Manage properties and configuration which apply to all queues" -msgstr "Rediger egenskaper og konfigurasjon som gjelder for alle køer" - -#: html/Admin/index.html:74 -msgid "Manage queues and queue-specific properties" -msgstr "Rediger køer og kø-spesifike egenskaper" - -#: html/Admin/index.html:64 -msgid "Manage users and passwords" -msgstr "Rediger brukere og passord" - -#: lib/RT/Date.pm:443 -msgid "Mar." -msgstr "Mar." - -#: NOT FOUND IN SOURCE -msgid "March" -msgstr "Mars" - -#: NOT FOUND IN SOURCE -msgid "May" -msgstr "Mai" - -#: lib/RT/Date.pm:445 -msgid "May." -msgstr "Mai." - -#: lib/RT/Transaction_Overlay.pm:731 -#. ($value) -msgid "Member %1 added" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:771 -#. ($value) -msgid "Member %1 deleted" -msgstr "" - -#: lib/RT/Group_Overlay.pm:1000 -msgid "Member added" -msgstr "Medlem lagt til" - -#: lib/RT/Group_Overlay.pm:1162 -msgid "Member deleted" -msgstr "Medlem slettet" - -#: lib/RT/Group_Overlay.pm:1166 -msgid "Member not deleted" -msgstr "Medlem ikke slettet" - -#: html/Elements/SelectLinkType:47 -msgid "Member of" -msgstr "Medlem av" - -#: NOT FOUND IN SOURCE -msgid "MemberOf" -msgstr "MedlemAv" - -#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 -msgid "Members" -msgstr "Medlemmer" - -#: lib/RT/Transaction_Overlay.pm:728 -#. ($value) -msgid "Membership in %1 added" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:768 -#. ($value) -msgid "Membership in %1 deleted" -msgstr "" - -#: html/Admin/Elements/UserTabs:61 -msgid "Memberships" -msgstr "" - -#: html/Admin/Users/Memberships.html:60 -#. ($UserObj->Name) -msgid "Memberships of the user %1" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2893 -msgid "Merge Successful" -msgstr "Fletting vellykket" - -#: lib/RT/Ticket_Overlay.pm:2780 -msgid "Merge failed. Couldn't set EffectiveId" -msgstr "Fletting feilet. Kunne ikke sette EffektivId" - -#: lib/RT/Ticket_Overlay.pm:2788 -msgid "Merge failed. Couldn't set Status" -msgstr "" - -#: html/Elements/EditLinks:131 html/Ticket/Elements/BulkLinks:48 -msgid "Merge into" -msgstr "Flett inn i" - -#: lib/RT/Transaction_Overlay.pm:734 -#. ($value) -msgid "Merged into %1" -msgstr "" - -#: html/Search/Bulk.html:143 html/Ticket/Update.html:118 -msgid "Message" -msgstr "Melding" - -#: html/Ticket/Elements/ShowTransactionAttachments:164 -msgid "Message body not shown because it is too large or is not plain text." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2451 -msgid "Message could not be recorded" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2454 -msgid "Message recorded" -msgstr "" - -#: html/Ticket/Elements/PreviewScrips:122 -msgid "Messages about this ticket will not be sent to..." -msgstr "" - -#: html/Elements/SelectTimeUnits:47 -msgid "Minutes" -msgstr "" - -#: html/Search/Build.html:490 lib/RT/Report/Tickets.pm:445 -msgid "Mismatched parentheses" -msgstr "" - -#: lib/RT/Record.pm:954 -msgid "Missing a primary key?: %1" -msgstr "Mangler en primærnøkkel?: %1" - -#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:92 -msgid "Mobile" -msgstr "Mobil" - -#: NOT FOUND IN SOURCE -msgid "MobilePhone" -msgstr "MobilTelefon" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "Modify Access Control List" -msgstr "Endre Tilgangslister" - -#: NOT FOUND IN SOURCE -msgid "Modify Custom Field %1" -msgstr "Endre Fleksifeltet %1" - -#: html/Admin/Elements/ObjectCustomFields:96 -#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) -msgid "Modify Custom Fields which apply to %1 for all %2" -msgstr "" - -#: html/Admin/Elements/ObjectCustomFields:98 -#. (loc(lc($Types))) -msgid "Modify Custom Fields which apply to all %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify Custom Fields which apply to all queues" -msgstr "Endre Fleksifelt som gjelder for alle køer" - -#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 -msgid "Modify Group Rights" -msgstr "" - -#: html/Admin/Groups/Members.html:105 html/User/Groups/Members.html:101 -msgid "Modify Members" -msgstr "" - -#: html/User/Delegation.html:58 -msgid "Modify Rights" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "Modify Scrip templates for this queue" -msgstr "Endre Scripmaler for denne køen" - -#: lib/RT/Queue_Overlay.pm:100 -msgid "Modify Scrips for this queue" -msgstr "Endre Scrips for denne køen" - -#: NOT FOUND IN SOURCE -msgid "Modify System ACLS" -msgstr "Endre SystemACLer" - -#: NOT FOUND IN SOURCE -msgid "Modify Template %1" -msgstr "Endre Malen %1" - -#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 -msgid "Modify User Rights" -msgstr "" - -#: html/Admin/Queues/CustomField.html:66 -#. ($QueueObj->Name()) -msgid "Modify a CustomField for queue %1" -msgstr "Endre et fleksifelt for køen %1" - -#: NOT FOUND IN SOURCE -msgid "Modify a CustomField that applies to all queues" -msgstr "Endre et fleksifelt som gjelder for alle køer" - -#: html/Admin/Queues/Scrip.html:82 -#. ($QueueObj->Name) -msgid "Modify a scrip for queue %1" -msgstr "Endre et scrip for køen %1" - -#: html/Admin/Global/Scrip.html:75 -msgid "Modify a scrip that applies to all queues" -msgstr "Endre et scrip som gjelder for alle køer" - -#: html/Admin/CustomFields/Objects.html:90 -#. ($CF->Name) -msgid "Modify associated objects for %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify dates for # %1" -msgstr "Endre datoer for # %1" - -#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 -#. ($TicketObj->Id) -msgid "Modify dates for #%1" -msgstr "Endre datoer for #%1" - -#: html/Ticket/ModifyDates.html:57 -#. ($TicketObj->Id) -msgid "Modify dates for ticket # %1" -msgstr "Endre datoer for sak # %1" - -#: html/Admin/Elements/GlobalCustomFieldTabs:65 html/Admin/Global/index.html:72 -msgid "Modify global custom fields" -msgstr "" - -#: html/Admin/Elements/GlobalCustomFieldTabs:70 html/Admin/Global/GroupRights.html:46 html/Admin/Global/GroupRights.html:49 html/Admin/Global/index.html:77 -msgid "Modify global group rights" -msgstr "Endre globale grupperettigheter" - -#: html/Admin/Global/GroupRights.html:54 -msgid "Modify global group rights." -msgstr "Endre globale grupperettigheter" - -#: NOT FOUND IN SOURCE -msgid "Modify global rights for groups" -msgstr "Endre globale rettigheter for grupper" - -#: NOT FOUND IN SOURCE -msgid "Modify global rights for users" -msgstr "Endre globale rettigheter for brukere" - -#: NOT FOUND IN SOURCE -msgid "Modify global scrips" -msgstr "Endre globale scrips" - -#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 -msgid "Modify global user rights" -msgstr "Endre globale brukerrettigheter" - -#: html/Admin/Global/UserRights.html:54 -msgid "Modify global user rights." -msgstr "Endre globale brukerrettigheter" - -#: lib/RT/Group_Overlay.pm:163 -msgid "Modify group metadata or delete group" -msgstr "Endre gruppens metadata eller slette gruppen" - -#: html/Admin/CustomFields/GroupRights.html:164 -#. ($CustomFieldObj->Name) -msgid "Modify group rights for custom field %1" -msgstr "" - -#: html/Admin/Groups/GroupRights.html:46 html/Admin/Groups/GroupRights.html:50 html/Admin/Groups/GroupRights.html:56 -#. ($GroupObj->Name) -msgid "Modify group rights for group %1" -msgstr "Endre grupperettigheter for %1 gruppen" - -#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 -#. ($QueueObj->Name) -msgid "Modify group rights for queue %1" -msgstr "Endre grupperettigheter %1 køen" - -#: lib/RT/Group_Overlay.pm:165 -msgid "Modify membership roster for this group" -msgstr "Endre medlemsliste for denne gruppen" - -#: lib/RT/System.pm:82 -msgid "Modify one's own RT account" -msgstr "Endre sin egen RT konto" - -#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 -#. ($QueueObj->Name) -msgid "Modify people related to queue %1" -msgstr "Endre hvem som er relatert til %1 køen" - -#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:57 -#. ($Ticket->id) -#. ($Ticket->Id) -msgid "Modify people related to ticket #%1" -msgstr "Endre hvem som er relater til sak #%1" - -#: html/Admin/Queues/Scrips.html:67 -#. ($QueueObj->Name) -msgid "Modify scrips for queue %1" -msgstr "Endre scrips for %1 køen" - -#: html/Admin/Elements/GlobalCustomFieldTabs:56 html/Admin/Global/Scrips.html:65 html/Admin/Global/index.html:63 -msgid "Modify scrips which apply to all queues" -msgstr "Endre scrips som gjelder alle køer" - -#: html/Admin/Global/Template.html:102 html/Admin/Global/Template.html:46 html/Admin/Global/Template.html:51 html/Admin/Queues/Template.html:99 -#. (loc($TemplateObj->Name())) -#. ($TemplateObj->id) -msgid "Modify template %1" -msgstr "Endre mal %1" - -#: html/Admin/Global/Templates.html:65 -msgid "Modify templates which apply to all queues" -msgstr "Endre maler som gjelder for alle køer" - -#: html/Admin/Global/index.html:85 -msgid "Modify the default \"RT at a glance\" view" -msgstr "" - -#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 -#. ($Group->Name) -msgid "Modify the group %1" -msgstr "Endre gruppen %1" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "Modify the queue watchers" -msgstr "Endre overvåkere for køen" - -#: html/Admin/Users/Modify.html:309 -#. ($UserObj->Name) -msgid "Modify the user %1" -msgstr "Endre brukeren %1" - -#: html/Ticket/ModifyAll.html:58 -#. ($Ticket->Id) -msgid "Modify ticket # %1" -msgstr "Endre sak # %1" - -#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 -#. ($TicketObj->Id) -msgid "Modify ticket #%1" -msgstr "Endre sak #%1" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "Modify tickets" -msgstr "Endre saker" - -#: html/Admin/CustomFields/UserRights.html:157 -#. ($CustomFieldObj->Name) -msgid "Modify user rights for custom field %1" -msgstr "" - -#: html/Admin/Groups/UserRights.html:46 html/Admin/Groups/UserRights.html:50 html/Admin/Groups/UserRights.html:56 -#. ($GroupObj->Name) -msgid "Modify user rights for group %1" -msgstr "Endre brukerrettigheter for %1 gruppen" - -#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 -#. ($QueueObj->Name) -msgid "Modify user rights for queue %1" -msgstr "Endre brukerrettigheter for %1 køen" - -#: NOT FOUND IN SOURCE -msgid "Modify watchers for queue '%1'" -msgstr "Endre overvåkere for '%1' køen" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "ModifyACL" -msgstr "EndreACL" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "ModifyCustomField" -msgstr "" - -#: lib/RT/Group_Overlay.pm:166 -msgid "ModifyOwnMembership" -msgstr "EndreEgetMedlemskap" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "ModifyQueueWatchers" -msgstr "EndreKøOvervåkere" - -#: lib/RT/Queue_Overlay.pm:100 -msgid "ModifyScrips" -msgstr "EndreScrips" - -#: lib/RT/System.pm:82 -msgid "ModifySelf" -msgstr "EndreSegSelv" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "ModifyTemplate" -msgstr "EndreMal" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "ModifyTicket" -msgstr "EndreSak" - -#: lib/RT/Date.pm:417 -msgid "Mon." -msgstr "Man." - -#: html/Ticket/Elements/ShowRequestor:61 -#. ($name) -msgid "More about %1" -msgstr "Mer om %1" - -#: html/Admin/Elements/PickCustomFields:83 -msgid "Move down" -msgstr "Flytt ned" - -#: html/Admin/Elements/PickCustomFields:75 -msgid "Move up" -msgstr "Flytt opp" - -#: html/Admin/Elements/SelectSingleOrMultiple:48 -msgid "Multiple" -msgstr "Flere" - -#: lib/RT/User_Overlay.pm:226 -msgid "Must specify 'Name' attribute" -msgstr "Må spesifisere attributten 'Navn'" - -#: html/SelfService/Elements/MyRequests:57 -#. ($friendly_status) -msgid "My %1 tickets" -msgstr "Mine %1 saker" - -#: NOT FOUND IN SOURCE -msgid "My Approvals" -msgstr "Mine saker til godkjenning" - -#: html/Tools/Elements/Tabs:63 -msgid "My Day" -msgstr "" - -#: html/Approvals/index.html:46 html/Approvals/index.html:47 -msgid "My approvals" -msgstr "Mine saker til godkjenning" - -#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:54 -msgid "My saved searches" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:58 html/Admin/Elements/AddCustomFieldValue:53 html/Admin/Elements/EditCustomField:55 html/Admin/Elements/EditCustomFieldValues:55 html/Admin/Elements/ModifyTemplate:49 html/Admin/Groups/Modify.html:65 html/Search/Bulk.html:157 html/User/Groups/Modify.html:65 -msgid "Name" -msgstr "Navn" - -#: lib/RT/User_Overlay.pm:233 -msgid "Name in use" -msgstr "Navnet er i bruk" - -#: NOT FOUND IN SOURCE -msgid "Need approval from system administrator" -msgstr "Trenger godkjennelse fra systemadministrator" - -#: html/Ticket/Elements/ShowDates:73 -msgid "Never" -msgstr "Aldri" - -#: NOT FOUND IN SOURCE -msgid "New" -msgstr "Ny" - -#: html/Elements/EditLinks:117 -msgid "New Links" -msgstr "Nye forhold" - -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 -msgid "New Password" -msgstr "Nytt Passord" - -#: etc/initialdata:332 -msgid "New Pending Approval" -msgstr "Ny, Venter på Godkjennelse" - -#: html/Ticket/Elements/Tabs:212 -msgid "New Search" -msgstr "Nytt Søk" - -#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 -msgid "New custom field" -msgstr "Nytt fleksifelt" - -#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 -msgid "New group" -msgstr "Ny gruppe" - -#: html/SelfService/Prefs.html:53 -msgid "New password" -msgstr "Nytt passord" - -#: lib/RT/User_Overlay.pm:816 -msgid "New password notification sent" -msgstr "Melding om nytt passord sendt" - -#: html/Admin/Elements/QueueTabs:95 -msgid "New queue" -msgstr "Ny kø" - -#: html/Ticket/Elements/Reminders:118 -msgid "New reminder:" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "New request" -msgstr "Ny forespørsel" - -#: html/Admin/Elements/SelectRights:65 -msgid "New rights" -msgstr "Nye rettigheter" - -#: html/Admin/Global/Scrip.html:63 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:76 -msgid "New scrip" -msgstr "Nytt scrip" - -#: NOT FOUND IN SOURCE -msgid "New search" -msgstr "Nytt søk" - -#: html/Admin/Global/Template.html:81 html/Admin/Global/Templates.html:60 html/Admin/Queues/Template.html:79 html/Admin/Queues/Templates.html:71 -msgid "New template" -msgstr "Ny mal" - -#: html/SelfService/Elements/Tabs:84 html/SelfService/Elements/Tabs:88 -msgid "New ticket" -msgstr "Ny sak" - -#: lib/RT/Ticket_Overlay.pm:2757 -msgid "New ticket doesn't exist" -msgstr "Ny sak eksistere ikke" - -#: html/Admin/Elements/UserTabs:81 -msgid "New user" -msgstr "Ny bruker" - -#: html/Admin/Elements/CreateUserCalled:47 -msgid "New user called" -msgstr "Ny bruker kalt" - -#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 -msgid "New watchers" -msgstr "Ny overvåker" - -#: NOT FOUND IN SOURCE -msgid "New window setting" -msgstr "Instillinger for nytt vindu" - -#: html/Helpers/CalPopup.html:58 html/Ticket/Elements/Tabs:92 -msgid "Next" -msgstr "Neste" - -#: html/Elements/TicketList:104 -msgid "Next Page" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Next page" -msgstr "Neste side" - -#: NOT FOUND IN SOURCE -msgid "NickName" -msgstr "KalleNavn" - -#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 -msgid "Nickname" -msgstr "Kallenavn" - -#: html/Admin/CustomFields/UserRights.html:145 -msgid "No Class defined" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:166 html/Admin/Elements/EditCustomField:119 -msgid "No CustomField" -msgstr "Ingen FleksiFelt" - -#: html/Admin/CustomFields/GroupRights.html:103 -msgid "No CustomField defined" -msgstr "" - -#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 -msgid "No Group defined" -msgstr "Ingen grupper definert" - -#: lib/RT/Tickets_Overlay_SQL.pm:482 -msgid "No Query" -msgstr "" - -#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 -msgid "No Queue defined" -msgstr "Ingen kø definert" - -#: bin/rt-crontool:73 -msgid "No RT user found. Please consult your RT administrator.\\n" -msgstr "Ingen RT bruker funnet. Vennligst referer til manualen.\\n" - -#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 -msgid "No Template" -msgstr "Ingen Mal" - -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket " -msgstr "Ingen sak oppgitt. Avbryter sak " - -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket modifications\\n\\n" -msgstr "Ingen Sak oppgitt. Avbryter saksendring\\n\\n" - -#: html/Approvals/Elements/Approve:77 -msgid "No action" -msgstr "Ingen handling" - -#: lib/RT/Record.pm:949 -msgid "No column specified" -msgstr "Ingen kolonne spesifisert" - -#: NOT FOUND IN SOURCE -msgid "No command found\\n" -msgstr "Ingen kommando funnet\\n" - -#: html/Ticket/Elements/ShowRequestor:68 -msgid "No comment entered about this user" -msgstr "Ingen kommentar skrevet om denne brukeren" - -#: NOT FOUND IN SOURCE -msgid "No correspondence attached" -msgstr "Ingen korrespondanse vedlagt" - -#: lib/RT/Action/Generic.pm:185 lib/RT/Condition/Generic.pm:197 lib/RT/Search/ActiveTicketsInQueue.pm:77 lib/RT/Search/Generic.pm:134 lib/RT/Search/Googleish.pm:78 -#. (ref $self) -msgid "No description for %1" -msgstr "Ingen beskrivelse for %1" - -#: lib/RT/Users_Overlay.pm:190 -msgid "No group specified" -msgstr "Ingen gruppe spesifisert" - -#: html/Admin/Groups/index.html:52 -msgid "No groups matching search criteria found." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2393 -msgid "No message attached" -msgstr "" - -#: lib/RT/User_Overlay.pm:1034 -msgid "No password set" -msgstr "Passordet er ikke satt" - -#: lib/RT/Queue_Overlay.pm:361 -msgid "No permission to create queues" -msgstr "Ingen tilgang til å opprette køer" - -#: lib/RT/Ticket_Overlay.pm:420 -#. ($QueueObj->Name) -msgid "No permission to create tickets in the queue '%1'" -msgstr "Ikke tilgang til å opprette saker for køen '%1'" - -#: lib/RT/User_Overlay.pm:186 -msgid "No permission to create users" -msgstr "Ikke tilgang til å opprette brukere" - -#: html/SelfService/Display.html:167 -msgid "No permission to display that ticket" -msgstr "Ikke tilgang til å vise den saken" - -#: lib/RT/SavedSearch.pm:156 -msgid "No permission to save system-wide searches" -msgstr "" - -#: html/SelfService/Update.html:117 -msgid "No permission to view update ticket" -msgstr "Ingen tilgang til å se oppdatering av saken" - -#: lib/RT/Queue_Overlay.pm:795 lib/RT/Ticket_Overlay.pm:1489 -msgid "No principal specified" -msgstr "Ingen primær spesifisert" - -#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 -msgid "No principals selected." -msgstr "Ingen primære spesifisert" - -#: html/Admin/Queues/index.html:57 -msgid "No queues matching search criteria found." -msgstr "Det er ingen køer som matcher søkekriteriet" - -#: html/Admin/Elements/SelectRights:106 -msgid "No rights found" -msgstr "Ingen rettigheter funnet" - -#: html/Admin/Elements/SelectRights:53 -msgid "No rights granted." -msgstr "Ingen rettigheter tildelt" - -#: lib/RT/SavedSearch.pm:196 -msgid "No search loaded" -msgstr "" - -#: html/Search/Bulk.html:232 -msgid "No search to operate on." -msgstr "Ingen søk å behandle" - -#: html/Elements/RT__Ticket/ColumnMap:137 html/Search/Results.rdf:78 -msgid "No subject" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "No ticket id specified" -msgstr "Ingen saksid oppgitt" - -#: lib/RT/Transaction_Overlay.pm:528 lib/RT/Transaction_Overlay.pm:565 -msgid "No transaction type specified" -msgstr "Transaksjonstype ikke spesifisert" - -#: NOT FOUND IN SOURCE -msgid "No user or email address specified" -msgstr "Ingen bruker eller epostaddresse oppgitt" - -#: html/Admin/Users/index.html:55 -msgid "No users matching search criteria found." -msgstr "Fant ingen brukere som treffer søkekriteriene." - -#: NOT FOUND IN SOURCE -msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" -msgstr "Fant ingen gyldig RT bruker. RT cvs handler avstengt. Kontakt din RT administrator.\\n" - -#: lib/RT/Record.pm:946 -msgid "No value sent to _Set!\\n" -msgstr "Ingen verdi sendt til _Set!\\n" - -#: html/Elements/QuickCreate:59 -msgid "Nobody" -msgstr "Ingen" - -#: lib/RT/Record.pm:951 -msgid "Nonexistant field?" -msgstr "Ukjent felt?" - -#: html/Search/Chart:71 html/Search/Elements/Chart:88 -msgid "Not Set" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Not logged in" -msgstr "Ikke logget inn" - -#: html/Elements/Header:96 -msgid "Not logged in." -msgstr "Ikke logget inn." - -#: lib/RT/Date.pm:397 -msgid "Not set" -msgstr "Ikke satt" - -#: html/NoAuth/Reminder.html:48 -msgid "Not yet implemented." -msgstr "Ikke implementert enda." - -#: NOT FOUND IN SOURCE -msgid "Not yet implemented...." -msgstr "Ikke implementert enda...." - -#: html/Approvals/Elements/Approve:81 -msgid "Notes" -msgstr "Notater" - -#: lib/RT/User_Overlay.pm:819 -msgid "Notification could not be sent" -msgstr "Melding kunne ikke sendes" - -#: etc/initialdata:101 -msgid "Notify AdminCcs" -msgstr "Raporter til AdminCc" - -#: etc/initialdata:97 -msgid "Notify AdminCcs as Comment" -msgstr "Rapporter til AdminCc som kommentar" - -#: etc/initialdata:93 etc/upgrade/3.1.17/content:6 -msgid "Notify Ccs" -msgstr "" - -#: etc/initialdata:89 etc/upgrade/3.1.17/content:2 -msgid "Notify Ccs as Comment" -msgstr "" - -#: etc/initialdata:128 -msgid "Notify Other Recipients" -msgstr "Rapporter til andre mottakere" - -#: etc/initialdata:124 -msgid "Notify Other Recipients as Comment" -msgstr "Rapporter til andre mottakere som kommentar" - -#: etc/initialdata:85 -msgid "Notify Owner" -msgstr "Rapporter til eier" - -#: etc/initialdata:81 -msgid "Notify Owner as Comment" -msgstr "Rapportert til eier som kommentar" - -#: etc/initialdata:376 -msgid "Notify Owner of their rejected ticket" -msgstr "" - -#: etc/initialdata:365 -msgid "Notify Owner of their ticket has been approved by all approvers" -msgstr "" - -#: etc/initialdata:353 -msgid "Notify Owner of their ticket has been approved by some approver" -msgstr "" - -#: etc/initialdata:334 -msgid "Notify Owners and AdminCcs of new items pending their approval" -msgstr "Rapporter til Eiere og AdminCc om nye ting som venter på godkjenning" - -#: etc/initialdata:77 -msgid "Notify Requestors" -msgstr "Rapporter til kunde" - -#: etc/initialdata:111 -msgid "Notify Requestors and Ccs" -msgstr "Rapporter til Kunder og Cc" - -#: etc/initialdata:106 -msgid "Notify Requestors and Ccs as Comment" -msgstr "Rapporter til Kunder og Cc som kommentar" - -#: etc/initialdata:120 -msgid "Notify Requestors, Ccs and AdminCcs" -msgstr "Rapporter til Kunder Cc og AdminCc" - -#: etc/initialdata:116 -msgid "Notify Requestors, Ccs and AdminCcs as Comment" -msgstr "Rapporter til Kunder Cc og AdminCc som Kommentar" - -#: lib/RT/Date.pm:451 -msgid "Nov." -msgstr "Nov." - -#: NOT FOUND IN SOURCE -msgid "November" -msgstr "November" - -#: html/Search/Elements/SelectAndOr:47 -msgid "OR" -msgstr "" - -#: lib/RT/Record.pm:322 -msgid "Object could not be created" -msgstr "Objekter kunne ikke opprettes" - -#: lib/RT/Record.pm:123 -msgid "Object could not be deleted" -msgstr "" - -#: lib/RT/Record.pm:341 -msgid "Object created" -msgstr "Objektet ble opprettet" - -#: lib/RT/Record.pm:120 -msgid "Object deleted" -msgstr "" - -#: html/Admin/CustomFields/Objects.html:72 html/Admin/Elements/ObjectCustomFields:63 -#. ($ObjectType) -#. ($LookupType) -msgid "Object of type %1 cannot take custom fields" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:967 -msgid "Object type mismatch" -msgstr "" - -#: lib/RT/Date.pm:450 -msgid "Oct." -msgstr "Okt." - -#: NOT FOUND IN SOURCE -msgid "October" -msgstr "Oktober" - -#: html/Tools/Elements/Tabs:55 -msgid "Offline" -msgstr "" - -#: html/Tools/Offline.html:49 -msgid "Offline edits" -msgstr "" - -#: html/Tools/Offline.html:46 -msgid "Offline upload" -msgstr "" - -#: html/Elements/SelectDateRelation:56 -msgid "On" -msgstr "Ved" - -#: lib/RT/Transaction_Overlay.pm:326 -#. ($self->CreatedAsString(), $self->CreatorObj->Name()) -msgid "On %1, %2 wrote:" -msgstr "" - -#: etc/initialdata:163 -msgid "On Comment" -msgstr "Ved Kommentar" - -#: etc/initialdata:156 -msgid "On Correspond" -msgstr "Ved Korrespondanse" - -#: etc/initialdata:145 -msgid "On Create" -msgstr "Ved Opprettelse" - -#: etc/initialdata:184 -msgid "On Owner Change" -msgstr "Ved Eierskifte" - -#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 -msgid "On Priority Change" -msgstr "" - -#: etc/initialdata:192 -msgid "On Queue Change" -msgstr "Ved Køendring" - -#: etc/initialdata:198 -msgid "On Resolve" -msgstr "Ved Løsning" - -#: etc/initialdata:169 -msgid "On Status Change" -msgstr "Ved statusendring" - -#: etc/initialdata:150 -msgid "On Transaction" -msgstr "Ved Transaksjon" - -#: html/Approvals/Elements/PendingMyApproval:70 -#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter' id='CreatedAfter' />") -msgid "Only show approvals for requests created after %1" -msgstr "Vis kun godkjennelse for saker opprettet etter %1" - -#: html/Approvals/Elements/PendingMyApproval:68 -#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore' id='CreatedBefore' />") -msgid "Only show approvals for requests created before %1" -msgstr "Bare vis godkjennelse for saker opprettet før %1" - -#: html/Admin/CustomFields/index.html:75 -msgid "Only show custom fields for:" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Open" -msgstr "Åpne" - -#: html/SelfService/index.html:46 -msgid "Open Tickets" -msgstr "" - -#: html/Ticket/Elements/Tabs:160 -msgid "Open it" -msgstr "Åpne den" - -#: NOT FOUND IN SOURCE -msgid "Open requests" -msgstr "Åpne forespørsler" - -#: html/SelfService/Elements/Tabs:75 -msgid "Open tickets" -msgstr "Åpne saker" - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in a new window" -msgstr "Åpne saker (fra utlisting) i et nytt vindu" - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in another window" -msgstr "Åpne saker (fra utlisting) it et annet vinud" - -#: etc/initialdata:140 -msgid "Open tickets on correspondence" -msgstr "Åpne saker ved korrespondanse" - -#: html/Prefs/MyRT.html:70 -msgid "Options" -msgstr "" - -#: html/Search/Elements/DisplayOptions:59 -msgid "Order by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Ordering and sorting" -msgstr "Rekkefølge og sortering" - -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 -msgid "Organization" -msgstr "Organisasjon" - -#: html/Approvals/Elements/Approve:53 -#. ($approving->Id, $approving->Subject) -msgid "Originating ticket: #%1" -msgstr "Opprinnelig sak: #%1" - -#: lib/RT/Transaction_Overlay.pm:622 -msgid "Outgoing email about a comment recorded" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:626 -msgid "Outgoing email recorded" -msgstr "" - -#: html/Admin/Queues/Modify.html:90 -msgid "Over time, priority moves toward" -msgstr "Over tid beveger prioriteten seg mot" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "Own tickets" -msgstr "Eie saker" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "OwnTicket" -msgstr "EieSak" - -#: etc/initialdata:38 html/Elements/QuickCreate:56 html/Search/Elements/PickBasics:101 html/Ticket/Create.html:72 html/Ticket/Elements/EditBasics:61 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/Reminders:129 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:110 lib/RT/Tickets_Overlay.pm:2006 -msgid "Owner" -msgstr "Eier" - -#: NOT FOUND IN SOURCE -msgid "Owner changed from %1 to %2" -msgstr "Eier endret fra %1 til %2" - -#: lib/RT/Ticket_Overlay.pm:505 -msgid "Owner could not be set." -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:672 -#. ($Old->Name , $New->Name) -msgid "Owner forcibly changed from %1 to %2" -msgstr "Eier ble tvunget til å endres fra %1 til %2" - -#: NOT FOUND IN SOURCE -msgid "Owner is" -msgstr "Eier er" - -#: html/Elements/TicketList:78 -#. ($Page, int($TotalFound/$Rows)+$oddRows) -msgid "Page %1 of %2" -msgstr "" - -#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:96 -msgid "Pager" -msgstr "Personsøker" - -#: NOT FOUND IN SOURCE -msgid "PagerPhone" -msgstr "PersonSøker" - -#: NOT FOUND IN SOURCE -msgid "Parent" -msgstr "Forelder" - -#: html/Elements/EditLinks:144 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:222 html/Ticket/Elements/BulkLinks:60 -msgid "Parents" -msgstr "Foreldre" - -#: html/Elements/Login:95 html/User/Prefs.html:105 -msgid "Password" -msgstr "Passord" - -#: html/NoAuth/Reminder.html:46 -msgid "Password Reminder" -msgstr "Passordhint" - -#: lib/RT/Transaction_Overlay.pm:781 lib/RT/User_Overlay.pm:1045 -msgid "Password changed" -msgstr "" - -#: lib/RT/User_Overlay.pm:1037 lib/RT/User_Overlay.pm:214 -#. ($RT::MinimumPasswordLength) -msgid "Password needs to be at least %1 characters long" -msgstr "" - -#: lib/RT/User_Overlay.pm:1044 -msgid "Password set" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Password too short" -msgstr "For kort passord" - -#: html/User/Prefs.html:240 -#. (loc_fuzzy($msg)) -msgid "Password: %1" -msgstr "Passord: %1" - -#: lib/RT/User_Overlay.pm:1030 -msgid "Password: Permission Denied" -msgstr "" - -#: html/Admin/Users/Modify.html:364 -msgid "Passwords do not match." -msgstr "Passordene stemmer ikke overens." - -#: html/User/Prefs.html:242 -msgid "Passwords do not match. Your password has not been changed" -msgstr "Passordene stemmer ikke overrens. Passordet ble ikke endret" - -#: html/Ticket/Elements/ShowSummary:62 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 -msgid "People" -msgstr "Personer" - -#: etc/initialdata:133 -msgid "Perform a user-defined action" -msgstr "Kjør en brukerdefinert handling" - -#: html/Admin/Tools/Configuration.html:94 -msgid "Perl configuration" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:251 lib/RT/ACE_Overlay.pm:257 lib/RT/ACE_Overlay.pm:580 lib/RT/ACE_Overlay.pm:590 lib/RT/ACE_Overlay.pm:600 lib/RT/ACE_Overlay.pm:665 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:405 lib/RT/Attribute_Overlay.pm:414 lib/RT/Attribute_Overlay.pm:427 lib/RT/CurrentUser.pm:116 lib/RT/CurrentUser.pm:125 lib/RT/CustomField_Overlay.pm:1017 lib/RT/CustomField_Overlay.pm:1138 lib/RT/CustomField_Overlay.pm:1281 lib/RT/CustomField_Overlay.pm:172 lib/RT/CustomField_Overlay.pm:189 lib/RT/CustomField_Overlay.pm:200 lib/RT/CustomField_Overlay.pm:374 lib/RT/CustomField_Overlay.pm:403 lib/RT/CustomField_Overlay.pm:763 lib/RT/CustomField_Overlay.pm:936 lib/RT/CustomField_Overlay.pm:971 lib/RT/Group_Overlay.pm:1117 lib/RT/Group_Overlay.pm:1121 lib/RT/Group_Overlay.pm:1130 lib/RT/Group_Overlay.pm:1240 lib/RT/Group_Overlay.pm:1244 lib/RT/Group_Overlay.pm:1250 lib/RT/Group_Overlay.pm:445 lib/RT/Group_Overlay.pm:542 lib/RT/Group_Overlay.pm:620 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:726 lib/RT/Group_Overlay.pm:730 lib/RT/Group_Overlay.pm:736 lib/RT/Group_Overlay.pm:922 lib/RT/Group_Overlay.pm:926 lib/RT/Group_Overlay.pm:939 lib/RT/Queue_Overlay.pm:1054 lib/RT/Queue_Overlay.pm:140 lib/RT/Queue_Overlay.pm:158 lib/RT/Queue_Overlay.pm:657 lib/RT/Queue_Overlay.pm:667 lib/RT/Queue_Overlay.pm:681 lib/RT/Queue_Overlay.pm:819 lib/RT/Queue_Overlay.pm:828 lib/RT/Queue_Overlay.pm:841 lib/RT/Scrip_Overlay.pm:149 lib/RT/Scrip_Overlay.pm:160 lib/RT/Scrip_Overlay.pm:224 lib/RT/Scrip_Overlay.pm:538 lib/RT/Template_Overlay.pm:108 lib/RT/Template_Overlay.pm:277 lib/RT/Ticket_Overlay.pm:1357 lib/RT/Ticket_Overlay.pm:1367 lib/RT/Ticket_Overlay.pm:1381 lib/RT/Ticket_Overlay.pm:1522 lib/RT/Ticket_Overlay.pm:1532 lib/RT/Ticket_Overlay.pm:1546 lib/RT/Ticket_Overlay.pm:1663 lib/RT/Ticket_Overlay.pm:1983 lib/RT/Ticket_Overlay.pm:2126 lib/RT/Ticket_Overlay.pm:2296 lib/RT/Ticket_Overlay.pm:2346 lib/RT/Ticket_Overlay.pm:2525 lib/RT/Ticket_Overlay.pm:2538 lib/RT/Ticket_Overlay.pm:2614 lib/RT/Ticket_Overlay.pm:2627 lib/RT/Ticket_Overlay.pm:2748 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2990 lib/RT/Ticket_Overlay.pm:3000 lib/RT/Ticket_Overlay.pm:3005 lib/RT/Ticket_Overlay.pm:3224 lib/RT/Ticket_Overlay.pm:3228 lib/RT/Ticket_Overlay.pm:3371 lib/RT/Ticket_Overlay.pm:3497 lib/RT/Transaction_Overlay.pm:516 lib/RT/Transaction_Overlay.pm:523 lib/RT/Transaction_Overlay.pm:551 lib/RT/Transaction_Overlay.pm:558 lib/RT/User_Overlay.pm:1176 lib/RT/User_Overlay.pm:1856 lib/RT/User_Overlay.pm:369 lib/RT/User_Overlay.pm:735 lib/RT/User_Overlay.pm:774 -msgid "Permission Denied" -msgstr "Ingen Tilgang" - -#: lib/RT/Template_Overlay.pm:238 lib/RT/Template_Overlay.pm:247 -msgid "Permission denied" -msgstr "" - -#: lib/RT/Template_Overlay.pm:372 -msgid "Permissions denied" -msgstr "" - -#: html/User/Elements/Tabs:56 -msgid "Personal Groups" -msgstr "Personlige Grupper" - -#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 -msgid "Personal groups" -msgstr "Personlige grupper" - -#: html/User/Elements/DelegateRights:58 -msgid "Personal groups:" -msgstr "Personlige grupper:" - -#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:81 -msgid "Phone numbers" -msgstr "Telefonnummer" - -#: NOT FOUND IN SOURCE -msgid "Placeholder" -msgstr "Stedholder" - -#: NOT FOUND IN SOURCE -msgid "Pref" -msgstr "Pref" - -#: html/Elements/Header:93 html/Elements/Tabs:91 html/SelfService/Elements/Tabs:95 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 -msgid "Preferences" -msgstr "Instillinger" - -#: html/Admin/Users/MyRT.html:75 -#. ($pane, $UserObj->Name) -msgid "Preferences %1 for user %2 ." -msgstr "" - -#: html/Prefs/MyRT.html:141 -#. ($pane) -msgid "Preferences saved for %1." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Prefs" -msgstr "Pref" - -#: lib/RT/Action/Generic.pm:195 -msgid "Prepare Stubbed" -msgstr "Klargjør Forkortet" - -#: html/Helpers/CalPopup.html:56 html/Ticket/Elements/Tabs:84 -msgid "Prev" -msgstr "Forrige" - -#: html/Elements/TicketList:101 -msgid "Previous Page" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Previous page" -msgstr "Forrige side" - -#: NOT FOUND IN SOURCE -msgid "Pri" -msgstr "Pri" - -#: lib/RT/ACE_Overlay.pm:157 lib/RT/ACE_Overlay.pm:239 lib/RT/ACE_Overlay.pm:569 -#. ($args{'PrincipalId'}) -msgid "Principal %1 not found." -msgstr "Primær %1 ikke funnet." - -#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:181 html/Ticket/Elements/EditBasics:92 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1790 -msgid "Priority" -msgstr "Prioritet" - -#: html/Admin/Queues/Modify.html:86 -msgid "Priority starts at" -msgstr "Prioritet starter på" - -#: html/Search/Elements/EditSearches:50 -msgid "Privacy:" -msgstr "" - -#: etc/initialdata:25 -msgid "Privileged" -msgstr "Priviligert" - -#: html/Admin/Users/Modify.html:342 html/User/Prefs.html:231 -#. (loc_fuzzy($msg)) -msgid "Privileged status: %1" -msgstr "Priviligert status: %1" - -#: html/Admin/Users/index.html:102 -msgid "Privileged users" -msgstr "Priviligerte brukere" - -#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 -msgid "Pseudogroup for internal use" -msgstr "Pseduogruppe for intern bruk" - -#: html/Search/Build.html:121 -msgid "Query Builder" -msgstr "" - -#: html/Search/Elements/Chart:101 -msgid "Query:" -msgstr "" - -#: html/Elements/QueueSummary:48 html/Elements/QuickCreate:54 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:62 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/Tools/Reports/CreatedByDates.html:85 html/Tools/Reports/ResolvedByDates.html:86 html/Tools/Reports/ResolvedByOwner.html:66 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1617 -msgid "Queue" -msgstr "Kø" - -#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 -#. ($Queue) -#. ($id) -msgid "Queue %1 not found" -msgstr "Køen %1 kunne ikke finnes" - -#: NOT FOUND IN SOURCE -msgid "Queue '%1' not found\\n" -msgstr "Køen '%1' ikke funnet\\n" - -#: NOT FOUND IN SOURCE -msgid "Queue Keyword Selections" -msgstr "Nøkkelordvalg for kø" - -#: html/Admin/Queues/Modify.html:64 -msgid "Queue Name" -msgstr "Kønavn" - -#: NOT FOUND IN SOURCE -msgid "Queue Scrips" -msgstr "Køscrip" - -#: lib/RT/Queue_Overlay.pm:365 -msgid "Queue already exists" -msgstr "Køen eksisterer allerede" - -#: lib/RT/Queue_Overlay.pm:374 lib/RT/Queue_Overlay.pm:380 -msgid "Queue could not be created" -msgstr "Køen kunne ikke opprettes" - -#: html/Ticket/Create.html:244 lib/t/regression/01ticket_link_searching.t:17 -msgid "Queue could not be loaded." -msgstr "Køen kunne ikke lastes." - -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:384 lib/RT/StyleGuide.pod:809 -msgid "Queue created" -msgstr "Køen opprettet" - -#: NOT FOUND IN SOURCE -msgid "Queue is not specified." -msgstr "Køen er ikke oppgitt." - -#: html/SelfService/Display.html:126 lib/RT/CustomField_Overlay.pm:197 -msgid "Queue not found" -msgstr "Køen ikke funnet" - -#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 -msgid "Queues" -msgstr "Køer" - -#: html/Elements/MyAdminQueues:46 -msgid "Queues I administer" -msgstr "" - -#: html/Elements/MySupportQueues:46 -msgid "Queues I'm an AdminCc for" -msgstr "" - -#: html/Elements/Quicksearch:47 html/Prefs/Elements/Tabs:58 html/Prefs/Quicksearch.html:70 -msgid "Quick search" -msgstr "Raskt søk" - -#: html/Elements/QuickCreate:47 -msgid "Quick ticket creation" -msgstr "" - -#: html/Search/Results.html:81 -msgid "RSS" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT %1" -msgstr "RT %1" - -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:796 -#. ($RT::VERSION, $RT::rtname) -msgid "RT %1 for %2" -msgstr "RT %1 for %2" - -#: NOT FOUND IN SOURCE -msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." -msgstr "RT %1 fra <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." - -#: NOT FOUND IN SOURCE -msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" -msgstr "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" - -#: NOT FOUND IN SOURCE -msgid "RT %1. Copyright 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" -msgstr "RT %1. Copyright 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" - -#: html/Admin/index.html:46 html/Admin/index.html:47 -msgid "RT Administration" -msgstr "RT-administrasjon" - -#: NOT FOUND IN SOURCE -msgid "RT Authentication error." -msgstr "RT Autentiseringsfeil." - -#: NOT FOUND IN SOURCE -msgid "RT Bounce: %1" -msgstr "RT Avvisning: %1" - -#: NOT FOUND IN SOURCE -msgid "RT Configuration error" -msgstr "RT Konfigurasjonsfeil" - -#: NOT FOUND IN SOURCE -msgid "RT Critical error. Message not recorded!" -msgstr "Kritisk RT feil. Meldingen ble ikke lagret!" - -#: html/Elements/Error:63 html/SelfService/Error.html:62 -msgid "RT Error" -msgstr "RT Feil" - -#: NOT FOUND IN SOURCE -msgid "RT Received mail (%1) from itself." -msgstr "RT Mottok mail (%1) fra seg selv." - -#: NOT FOUND IN SOURCE -msgid "RT Recieved mail (%1) from itself." -msgstr "RT Mottok mail (%1) fra seg selv." - -#: NOT FOUND IN SOURCE -msgid "RT Self Service / Closed Tickets" -msgstr "RT Selvbetjening / Lukkede Saker" - -#: html/Admin/Tools/Configuration.html:73 -msgid "RT Variables" -msgstr "" - -#: html/Admin/Elements/SystemTabs:71 html/Admin/Elements/UserTabs:67 html/Admin/Global/MyRT.html:1 html/Admin/Global/MyRT.html:12 html/Admin/Global/MyRT.html:4 html/Admin/Global/index.html:84 html/Admin/Users/MyRT.html:21 html/Prefs/MyRT.html:66 html/Prefs/MyRT.html:78 html/User/Elements/Tabs:65 html/index.html:1 html/index.html:75 -msgid "RT at a glance" -msgstr "RT oversikt" - -#: html/Admin/Users/MyRT.html:30 -#. ($UserObj->Name) -msgid "RT at a glance for the user %1" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:117 -msgid "RT can include content from another web service when showing this custom field." -msgstr "" - -#: html/Admin/CustomFields/Modify.html:106 -msgid "RT can make this custom field's values into hyperlinks to another service." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't authenticate you" -msgstr "RT kunne ikke autentisere deg" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find requestor via its external database lookup" -msgstr "RT kunne ikke finne kunde via sitt eksterne databaseoppslag" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find the queue: %1" -msgstr "RT kunne ikke finne køen: %1" - -#: html/Elements/SetupSessionCookie:100 -msgid "RT couldn't store your session." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't validate this PGP signature. \\n" -msgstr "RT kunne ikke validere denne PGP signaturen. \\n" - -#: html/Elements/Logo:49 html/Elements/PageLayout:172 -#. ($RT::rtname) -msgid "RT for %1" -msgstr "RT for %1" - -#: NOT FOUND IN SOURCE -msgid "RT for %1: %2" -msgstr "RT for %1: %2" - -#: NOT FOUND IN SOURCE -msgid "RT has proccessed your commands" -msgstr "RT har behandlet dine kommandoer" - -#: NOT FOUND IN SOURCE -msgid "RT is © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. It is distributed under <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 of the GNU General Public License.</a>" -msgstr "RT er © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Den er distribuert under <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 of the GNU General Public License.</a>" - -#: NOT FOUND IN SOURCE -msgid "RT is © Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com>. It is distributed under <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 of the GNU General Public License.</a>" -msgstr "RT er © Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com>. Den er distribuert under <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 of the GNU General Public License.</a>" - -#: NOT FOUND IN SOURCE -msgid "RT thinks this message may be a bounce" -msgstr "RT tror denne meldingen kan være en returmail" - -#: html/Search/Simple.html:58 -msgid "RT will look for anything else you enter in ticket subjects." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT will process this message as if it were unsigned.\\n" -msgstr "RT vil behandle denne meldingen som om den var usignert" - -#: html/Admin/CustomFields/Modify.html:108 html/Admin/CustomFields/Modify.html:119 -msgid "RT will replace <tt>__id__</tt> and <tt>__CustomField__</tt> with the record id and custom field value, respectively" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT's email command mode requires PGP authentication. Either you didn't sign your message, or your signature could not be verified." -msgstr "RT's epost kommandomodus krever PGP autentisering. Meldingen din var enten ikke signert, eller signaturen din kunne ikke bekreftes." - -#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 -msgid "Real Name" -msgstr "Ekte Navn" - -#: NOT FOUND IN SOURCE -msgid "RealName" -msgstr "EkteNavn" - -#: lib/RT/Transaction_Overlay.pm:725 -#. ($value) -msgid "Reference by %1 added" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:765 -#. ($value) -msgid "Reference by %1 deleted" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:722 -#. ($value) -msgid "Reference to %1 added" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:762 -#. ($value) -msgid "Reference to %1 deleted" -msgstr "" - -#: html/Elements/EditLinks:103 html/Elements/EditLinks:156 html/Elements/ShowLinks:92 html/Ticket/Create.html:225 html/Ticket/Elements/BulkLinks:72 -msgid "Referred to by" -msgstr "Referert til av" - -#: html/Elements/EditLinks:152 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:224 html/Ticket/Elements/BulkLinks:68 -msgid "Refers to" -msgstr "Refererer til" - -#: NOT FOUND IN SOURCE -msgid "RefersTo" -msgstr "RefererTil" - -#: NOT FOUND IN SOURCE -msgid "Refine" -msgstr "Redefiner" - -#: NOT FOUND IN SOURCE -msgid "Refine search" -msgstr "Redefiner søket" - -#: html/Elements/Refresh:57 -#. ($value/60) -msgid "Refresh this page every %1 minutes." -msgstr "Last siden på nytt hvert %1 minutt." - -#: lib/RT/Transaction_Overlay.pm:811 -#. ($ticket->Subject) -msgid "Reminder '%1' added" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:824 -#. ($ticket->Subject) -msgid "Reminder '%1' completed" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:817 -#. ($ticket->Subject) -msgid "Reminder '%1' reopened" -msgstr "" - -#: html/Ticket/Reminders.html:46 -#. ($Ticket->Id) -msgid "Reminder ticket #%1" -msgstr "" - -#: html/Elements/MyReminders:48 html/Ticket/Elements/ShowSummary:75 html/Ticket/Elements/Tabs:122 html/Ticket/Reminders.html:52 -msgid "Reminders" -msgstr "" - -#: html/Ticket/Reminders.html:50 -#. ($Ticket->Id) -msgid "Reminders for ticket #%1" -msgstr "" - -#: html/Search/Bulk.html:94 -msgid "Remove AdminCc" -msgstr "Fjern AdminCc" - -#: html/Search/Bulk.html:90 -msgid "Remove Cc" -msgstr "Fjern Cc" - -#: html/Search/Bulk.html:86 -msgid "Remove Requestor" -msgstr "Fjern Kunde" - -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:147 -msgid "Reply" -msgstr "Svar" - -#: html/Admin/Queues/Modify.html:72 -msgid "Reply Address" -msgstr "" - -#: html/Search/Bulk.html:129 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:78 -msgid "Reply to requestors" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "Reply to tickets" -msgstr "Svar på sak" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "ReplyToTicket" -msgstr "SvarPåSak" - -#: html/Tools/Elements/Tabs:59 html/Tools/Reports/index.html:46 html/Tools/Reports/index.html:47 -msgid "Reports" -msgstr "" - -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:111 -msgid "Requestor" -msgstr "Kunde" - -#: NOT FOUND IN SOURCE -msgid "Requestor email address" -msgstr "Kundens epostaddresse" - -#: NOT FOUND IN SOURCE -msgid "Requestor(s)" -msgstr "Kunde(r)" - -#: NOT FOUND IN SOURCE -msgid "RequestorAddresses" -msgstr "KundeAddresser" - -#: html/SelfService/Create.html:63 html/Ticket/Create.html:80 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 -msgid "Requestors" -msgstr "Kunder" - -#: html/Admin/Queues/Modify.html:96 -msgid "Requests should be due in" -msgstr "Forespørsler skal være behandlet innen" - -#: lib/RT/Attribute_Overlay.pm:146 -#. ('Object') -msgid "Required parameter '%1' not specified" -msgstr "" - -#: html/Elements/Submit:83 -msgid "Reset" -msgstr "Reset" - -#: html/Admin/Users/MyRT.html:15 html/Prefs/MyRT.html:60 -msgid "Reset to default" -msgstr "" - -#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:84 -msgid "Residence" -msgstr "Hjemme" - -#: html/Ticket/Elements/Tabs:156 -msgid "Resolve" -msgstr "Løs" - -#: html/Ticket/Update.html:156 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Resolve ticket #%1 (%2)" -msgstr "Løs saknr #%1 (%2)" - -#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1172 -msgid "Resolved" -msgstr "Løst" - -#: html/Tools/Reports/Elements/Tabs:55 -msgid "Resolved by owner" -msgstr "" - -#: html/Tools/Reports/Elements/Tabs:59 -msgid "Resolved in date range" -msgstr "" - -#: html/Tools/Reports/ResolvedByDates.html:52 -msgid "Resolved tickets in period, grouped by owner" -msgstr "" - -#: html/Tools/Reports/ResolvedByOwner.html:50 -msgid "Resolved tickets, grouped by owner" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Response to requestors" -msgstr "Svar til kunder" - -#: html/Elements/ListActions:46 html/Search/Elements/NewListActions:47 -msgid "Results" -msgstr "Resultater" - -#: NOT FOUND IN SOURCE -msgid "Results per page" -msgstr "Resultater per side" - -#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 -msgid "Retype Password" -msgstr "Skriv Passord igjen" - -#: html/Search/Elements/EditSearches:61 -msgid "Revert" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" -msgstr "Rettighet %1 kunne ikke finnes for %2 %3 in scope %4 (%5)\\n" - -#: lib/RT/ACE_Overlay.pm:630 -msgid "Right Delegated" -msgstr "Rettighet Deligert" - -#: lib/RT/ACE_Overlay.pm:320 -msgid "Right Granted" -msgstr "Rettighet Tildelt" - -#: lib/RT/ACE_Overlay.pm:178 -msgid "Right Loaded" -msgstr "Rettighet lastet" - -#: lib/RT/ACE_Overlay.pm:695 lib/RT/ACE_Overlay.pm:716 -msgid "Right could not be revoked" -msgstr "Rettigheten kunne ikke trekkes tilbake" - -#: html/User/Delegation.html:85 -msgid "Right not found" -msgstr "Rettighet ikke funnet" - -#: lib/RT/ACE_Overlay.pm:560 lib/RT/ACE_Overlay.pm:655 -msgid "Right not loaded." -msgstr "Rettighet ikke lastet." - -#: lib/RT/ACE_Overlay.pm:712 -msgid "Right revoked" -msgstr "Rettighet fjernet" - -#: html/Admin/Elements/UserTabs:70 -msgid "Rights" -msgstr "Rettigheter" - -#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:961 -#. ($object_type) -msgid "Rights could not be granted for %1" -msgstr "Rettigheter kunne ikke tildeles for %1" - -#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:990 -#. ($object_type) -msgid "Rights could not be revoked for %1" -msgstr "Rettigheter kunne ikke trekkes tilbake for %1" - -#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 -msgid "Roles" -msgstr "Roller" - -#: NOT FOUND IN SOURCE -msgid "RootApproval" -msgstr "RootGodkjenning" - -#: html/Prefs/MyRT.html:72 -msgid "Rows per box" -msgstr "" - -#: html/Search/Elements/DisplayOptions:93 -msgid "Rows per page" -msgstr "" - -#: lib/RT/Date.pm:422 -msgid "Sat." -msgstr "Lør." - -#: html/Prefs/MyRT.html:72 html/Prefs/Quicksearch.html:64 html/Prefs/Search.html:69 html/Prefs/Search.html:69 html/Search/Elements/EditSearches:70 html/Widgets/SelectionBox:211 -msgid "Save" -msgstr "" - -#: html/Admin/Global/Template.html:67 html/Admin/Groups/Modify.html:88 html/Admin/Queues/Modify.html:111 html/Admin/Queues/People.html:126 html/Admin/Users/Modify.html:239 html/Prefs/Quicksearch.html:64 html/Prefs/SearchOptions.html:63 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:61 html/Ticket/ModifyPeople.html:60 html/User/Groups/Modify.html:77 -msgid "Save Changes" -msgstr "Lagre Endringer" - -#: html/User/Prefs.html:181 -msgid "Save Preferences" -msgstr "" - -#: html/Ticket/Elements/PreviewScrips:131 -msgid "Save changes" -msgstr "Lage endringer" - -#: lib/RT/SavedSearch.pm:173 -#. ($name) -msgid "Saved search %1" -msgstr "" - -#: html/Admin/Elements/ListGlobalScrips:60 html/Admin/Global/Scrip.html:77 html/Admin/Queues/Scrip.html:84 -#. ($scrip->Id) -#. ($id) -msgid "Scrip #%1" -msgstr "Scrip #%1" - -#: lib/RT/Scrip_Overlay.pm:203 -msgid "Scrip Created" -msgstr "Scrip Opprettet" - -#: html/Admin/Elements/EditScrip:52 -msgid "Scrip Fields" -msgstr "" - -#: html/Admin/Elements/EditScrips:109 -msgid "Scrip deleted" -msgstr "Scrip slettet" - -#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 -msgid "Scrips" -msgstr "Scrip" - -#: NOT FOUND IN SOURCE -msgid "Scrips for %1\\n" -msgstr "Scrip for %1\\n" - -#: html/Admin/Queues/Scrips.html:55 -msgid "Scrips which apply to all queues" -msgstr "Scrip som gjelder for alle køer" - -#: html/Elements/SimpleSearch:48 html/Search/Simple.html:63 -msgid "Search" -msgstr "Søk" - -#: NOT FOUND IN SOURCE -msgid "Search Criteria" -msgstr "Søkekriteria" - -#: html/Prefs/SearchOptions.html:47 html/Prefs/SearchOptions.html:50 -msgid "Search Preferences" -msgstr "" - -#: lib/RT/SavedSearch.pm:115 -msgid "Search attribute load failure" -msgstr "" - -#: html/Approvals/Elements/PendingMyApproval:59 -msgid "Search for approvals" -msgstr "Søk etter godkjenninger" - -#: html/Search/Simple.html:67 -msgid "Search for tickets" -msgstr "" - -#: html/Search/Simple.html:55 -msgid "Search for tickets. Enter <strong>id</strong> numbers, <strong>queues</strong> by name, Owners by <strong>username</strong> and Requestors by <strong>email address</strong>. RT will look for anything else you enter in ticket bodies and attachments." -msgstr "" - -#: html/User/Elements/Tabs:62 -msgid "Search options" -msgstr "" - -#: html/Search/Chart.html:56 -#. ($PrimaryGroupBy) -msgid "Search results grouped by %1" -msgstr "" - -#: lib/RT/SavedSearch.pm:203 -#. ($msg) -msgid "Search update: %1" -msgstr "" - -#: html/Search/Simple.html:57 -msgid "Searching the full text of every ticket can take a long time, but if you need to do it, you can search for any word in full ticket history for any word by typing <b>fulltext:<i>word</i></b>." -msgstr "" - -#: bin/rt-crontool:265 -msgid "Security:" -msgstr "Sikkerhet:" - -#: html/Elements/ShowCustomFields:98 -msgid "See also:" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:105 -msgid "See custom fields" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "See exact outgoing email messages and their recipeients" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "See ticket private commentary" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:103 -msgid "See ticket summaries" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:105 -msgid "SeeCustomField" -msgstr "" - -#: lib/RT/Group_Overlay.pm:169 -msgid "SeeGroup" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "SeeQueue" -msgstr "SeKø" - -#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 -msgid "Select a Custom Field" -msgstr "" - -#: html/Admin/Groups/index.html:78 -msgid "Select a group" -msgstr "Velg en gruppe" - -#: html/Admin/Queues/index.html:54 -msgid "Select a queue" -msgstr "Velg en kø" - -#: html/SelfService/CreateTicketInQueue.html:48 -msgid "Select a queue for your new ticket" -msgstr "" - -#: html/Admin/Users/index.html:46 html/Admin/Users/index.html:49 html/Admin/Users/index.html:52 -msgid "Select a user" -msgstr "Velg en bruker" - -#: html/Admin/Elements/CustomFieldTabs:90 -msgid "Select custom field" -msgstr "Velg fleksifelt" - -#: html/Admin/Global/CustomFields/index.html:70 -msgid "Select custom fields for all user groups" -msgstr "" - -#: html/Admin/Global/CustomFields/index.html:65 -msgid "Select custom fields for all users" -msgstr "" - -#: html/Admin/Global/CustomFields/index.html:76 -msgid "Select custom fields for tickets in all queues" -msgstr "" - -#: html/Admin/Global/CustomFields/index.html:83 -msgid "Select custom fields for transactions on tickets in all queues" -msgstr "" - -#: html/Admin/Elements/GroupTabs:75 html/User/Elements/GroupTabs:71 -msgid "Select group" -msgstr "Velg gruppe" - -#: lib/RT/CustomField_Overlay.pm:59 -msgid "Select multiple values" -msgstr "Velg flere verdier" - -#: lib/RT/CustomField_Overlay.pm:60 -msgid "Select one value" -msgstr "Velg en verdi" - -#: html/Admin/Elements/QueueTabs:92 -msgid "Select queue" -msgstr "Velg kø" - -#: html/Prefs/Quicksearch.html:53 -msgid "Select queues to be displayed on the \"RT at a glance\" page" -msgstr "" - -#: html/Admin/Global/Scrip.html:59 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:67 html/Admin/Queues/Scrips.html:73 -msgid "Select scrip" -msgstr "Velg scrip" - -#: html/Admin/Global/Template.html:78 html/Admin/Global/Templates.html:57 html/Admin/Queues/Template.html:76 html/Admin/Queues/Templates.html:68 -msgid "Select template" -msgstr "Velg mal" - -#: lib/RT/CustomField_Overlay.pm:61 -msgid "Select up to %1 values" -msgstr "" - -#: html/Admin/Elements/UserTabs:78 -msgid "Select user" -msgstr "Velg bruker" - -#: NOT FOUND IN SOURCE -msgid "SelectMultiple" -msgstr "VelgFlere" - -#: NOT FOUND IN SOURCE -msgid "SelectSingle" -msgstr "VelgEnkelt" - -#: html/Admin/Elements/EditCustomFields:58 -msgid "Selected Custom Fields" -msgstr "" - -#: html/Admin/CustomFields/Objects.html:59 -msgid "Selected objects" -msgstr "" - -#: html/Widgets/SelectionBox:209 -msgid "Selections modified. Please save your changes" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Self Service" -msgstr "Selvbetjening" - -#: etc/initialdata:121 -msgid "Send mail to all watchers" -msgstr "Send epost til alle overvåkere" - -#: etc/initialdata:117 -msgid "Send mail to all watchers as a \"comment\"" -msgstr "Send epost til alle overvåkere som \"kommentar\"" - -#: etc/initialdata:112 -msgid "Send mail to requestors and Ccs" -msgstr "Send epost til kunder og Cc" - -#: etc/initialdata:107 -msgid "Send mail to requestors and Ccs as a comment" -msgstr "Send epost til kunder og Cc som kommentar" - -#: etc/initialdata:78 -msgid "Sends a message to the requestors" -msgstr "Sender en melding til kundene" - -#: etc/initialdata:125 etc/initialdata:129 -msgid "Sends mail to explicitly listed Ccs and Bccs" -msgstr "Send epost til eksplisit oppgitte Ccer og Bccer" - -#: etc/initialdata:94 etc/upgrade/3.1.17/content:7 -msgid "Sends mail to the Ccs" -msgstr "" - -#: etc/initialdata:90 etc/upgrade/3.1.17/content:3 -msgid "Sends mail to the Ccs as a comment" -msgstr "" - -#: etc/initialdata:102 -msgid "Sends mail to the administrative Ccs" -msgstr "Send epost til Administrative Ccer" - -#: etc/initialdata:98 -msgid "Sends mail to the administrative Ccs as a comment" -msgstr "Sender epost til de administrative Ccene som kommentar" - -#: etc/initialdata:82 etc/initialdata:86 -msgid "Sends mail to the owner" -msgstr "Sender epost til eieren" - -#: lib/RT/Date.pm:449 -msgid "Sep." -msgstr "Sep." - -#: NOT FOUND IN SOURCE -msgid "September" -msgstr "September" - -#: html/Ticket/Elements/ShowTransaction:158 -msgid "Show" -msgstr "" - -#: html/Approvals/index.html:52 -msgid "Show Approvals" -msgstr "" - -#: html/Search/Elements/EditFormat:56 -msgid "Show Columns" -msgstr "" - -#: html/Ticket/Elements/Tabs:220 -msgid "Show Results" -msgstr "Vis Resultater" - -#: html/Approvals/Elements/PendingMyApproval:64 -msgid "Show approved requests" -msgstr "Vis godkjente forespørsler" - -#: html/Ticket/Create.html:316 -msgid "Show basics" -msgstr "Vis basisinfo" - -#: html/Approvals/Elements/PendingMyApproval:65 -msgid "Show denied requests" -msgstr "Vis avviste forespørsler" - -#: html/Ticket/Create.html:319 -msgid "Show details" -msgstr "Vis detaljer" - -#: html/Approvals/Elements/PendingMyApproval:63 -msgid "Show pending requests" -msgstr "Vis ventende forespørsler" - -#: html/Approvals/Elements/PendingMyApproval:66 -msgid "Show requests awaiting other approvals" -msgstr "Vis forespørsler som venter på andre godkjenninger" - -#: NOT FOUND IN SOURCE -msgid "Show ticket private commentary" -msgstr "Vis sakens private kommentarer" - -#: NOT FOUND IN SOURCE -msgid "Show ticket summaries" -msgstr "Vis sakssammendrag" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "ShowACL" -msgstr "VisACL" - -#: lib/RT/System.pm:85 -msgid "ShowConfigTab" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "ShowOutgoingEmail" -msgstr "" - -#: lib/RT/Group_Overlay.pm:168 -msgid "ShowSavedSearches" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "ShowScrips" -msgstr "VisScrip" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "ShowTemplate" -msgstr "VisMal" - -#: lib/RT/Queue_Overlay.pm:103 -msgid "ShowTicket" -msgstr "VisSak" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "ShowTicketComments" -msgstr "VisSaksKommentarer" - -#: lib/RT/Queue_Overlay.pm:107 -msgid "Sign up as a ticket Requestor or ticket or queue Cc" -msgstr "Meld deg på som saksforespørrer eller sak/kø Cc" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "Sign up as a ticket or queue AdminCc" -msgstr "Meld deg på som sak/kø AdminCc" - -#: html/Admin/Users/Modify.html:230 html/User/Prefs.html:168 -msgid "Signature" -msgstr "Signatur" - -#: NOT FOUND IN SOURCE -msgid "Signed in as %1" -msgstr "Logget inn som %1" - -#: html/Elements/Tabs:68 -msgid "Simple Search" -msgstr "" - -#: html/Admin/Elements/SelectSingleOrMultiple:47 -msgid "Single" -msgstr "Enkel" - -#: html/Search/Elements/EditFormat:75 -msgid "Size" -msgstr "" - -#: html/Elements/Header:89 -msgid "Skip Menu" -msgstr "Dropp Meny" - -#: html/Search/Elements/EditFormat:78 -msgid "Small" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:120 -msgid "Some browsers may only load content from the same domain as your RT server." -msgstr "" - -#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 -msgid "Sort" -msgstr "Sorter" - -#: NOT FOUND IN SOURCE -msgid "Sort key" -msgstr "Sorter nøkkel" - -#: NOT FOUND IN SOURCE -msgid "Sort results by" -msgstr "Sorter resultater etter" - -#: NOT FOUND IN SOURCE -msgid "SortOrder" -msgstr "SorteringsRekkefølge" - -#: html/Admin/Elements/EditScrip:78 -msgid "Stage" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Stalled" -msgstr "Pauset" - -#: NOT FOUND IN SOURCE -msgid "Start page" -msgstr "Startside" - -#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 -msgid "Started" -msgstr "Startet" - -#: NOT FOUND IN SOURCE -msgid "Started date '%1' could not be parsed" -msgstr "Startdato '%1' kunne ikke tolkes" - -#: html/Elements/SelectDateType:52 html/Ticket/Create.html:208 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 -msgid "Starts" -msgstr "Starter" - -#: NOT FOUND IN SOURCE -msgid "Starts By" -msgstr "Starter Etter" - -#: NOT FOUND IN SOURCE -msgid "Starts date '%1' could not be parsed" -msgstr "Startdato '%1' kunne ikke tolkes" - -#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 -msgid "State" -msgstr "Stat" - -#: html/Search/Elements/PickBasics:87 html/SelfService/Update.html:57 html/Ticket/Create.html:66 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:1651 -msgid "Status" -msgstr "Status" - -#: etc/initialdata:309 -msgid "Status Change" -msgstr "Statusendring" - -#: NOT FOUND IN SOURCE -msgid "Status changed from %1 to %2" -msgstr "Status endret fra %1 til %2" - -#: NOT FOUND IN SOURCE -msgid "StatusChange" -msgstr "EndreStatus" - -#: html/Ticket/Elements/Tabs:178 -msgid "Steal" -msgstr "Stjel" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "Steal tickets" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "StealTicket" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:678 -#. ($Old->Name) -msgid "Stolen from %1" -msgstr "Stjålet fra %1" - -#: NOT FOUND IN SOURCE -msgid "Stolen from %1 " -msgstr "Stjålet fra %1 " - -#: html/Search/Elements/EditFormat:81 -msgid "Style" -msgstr "" - -#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:132 html/SelfService/Create.html:79 html/SelfService/Update.html:65 html/Ticket/Create.html:108 html/Ticket/Elements/EditBasics:48 html/Ticket/Elements/Reminders:125 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:82 lib/RT/Ticket_Overlay.pm:1162 lib/RT/Tickets_Overlay.pm:1733 -msgid "Subject" -msgstr "Emne" - -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:700 -#. ($self->Data) -msgid "Subject changed to %1" -msgstr "Endre emne til %1" - -#: html/Elements/Submit:75 -msgid "Submit" -msgstr "Oppdater" - -#: NOT FOUND IN SOURCE -msgid "Submit Workflow" -msgstr "Send Arbeidsflyt" - -#: lib/RT/Group_Overlay.pm:774 -msgid "Succeeded" -msgstr "Lykkes" - -#: lib/RT/Date.pm:423 -msgid "Sun." -msgstr "Søn." - -#: lib/RT/System.pm:75 -msgid "SuperUser" -msgstr "SuperBruker" - -#: html/User/Elements/DelegateRights:98 -msgid "System" -msgstr "System" - -#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 -msgid "System Configuration" -msgstr "" - -#: html/Admin/CustomFields/GroupRights.html:128 html/Admin/CustomFields/GroupRights.html:155 html/Admin/CustomFields/UserRights.html:128 html/Admin/CustomFields/UserRights.html:98 html/Admin/Elements/SelectRights:106 lib/RT/ACE_Overlay.pm:584 lib/RT/Interface/Web.pm:960 lib/RT/Interface/Web.pm:989 -msgid "System Error" -msgstr "Systemfeil" - -#: NOT FOUND IN SOURCE -msgid "System Error. Right not granted." -msgstr "Systemfeil. Rettighet ikke tildelt." - -#: NOT FOUND IN SOURCE -msgid "System Error. right not granted" -msgstr "Systemfeil. rettigheter ikke tildelt" - -#: lib/RT/Transaction_Overlay.pm:224 lib/RT/Transaction_Overlay.pm:230 -#. ($msg) -msgid "System Error: %1" -msgstr "" - -#: html/Admin/Tools/index.html:47 -msgid "System Tools" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:633 -msgid "System error. Right not delegated." -msgstr "Systemfeil. Rettighet ikke tildelt." - -#: lib/RT/ACE_Overlay.pm:163 lib/RT/ACE_Overlay.pm:228 lib/RT/ACE_Overlay.pm:323 lib/RT/ACE_Overlay.pm:920 -msgid "System error. Right not granted." -msgstr "Systemfeil. Rettighet ikke tildelt." - -#: NOT FOUND IN SOURCE -msgid "System error. Unable to grant rights." -msgstr "Systemfeil. Kunne ikke tildele rettigheter." - -#: html/Admin/CustomFields/GroupRights.html:58 html/Admin/Global/GroupRights.html:56 html/Admin/Groups/GroupRights.html:58 html/Admin/Queues/GroupRights.html:57 -msgid "System groups" -msgstr "Systemgrupper" - -#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 -msgid "SystemRolegroup for internal use" -msgstr "SystemRollegruppe for intern bruk" - -#: lib/RT/CurrentUser.pm:357 -msgid "TEST_STRING" -msgstr "TEST_STRENG" - -#: etc/initialdata:603 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:170 -msgid "Take" -msgstr "Ta" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "Take tickets" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "TakeTicket" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:663 -msgid "Taken" -msgstr "Tatt" - -#: html/Admin/Elements/EditScrip:71 html/Tools/Offline.html:78 -msgid "Template" -msgstr "Mal" - -#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 -#. ($TemplateObj->Id()) -msgid "Template #%1" -msgstr "Mal #%1" - -#: html/Admin/Elements/EditTemplates:110 -msgid "Template deleted" -msgstr "Mal slettet" - -#: lib/RT/Scrip_Overlay.pm:176 -msgid "Template is mandatory argument" -msgstr "" - -#: lib/RT/Scrip_Overlay.pm:180 -msgid "Template not found" -msgstr "Kunne ikke finne mal" - -#: NOT FOUND IN SOURCE -msgid "Template not found\\n" -msgstr "Kunne ikke finne mal\\n" - -#: lib/RT/Template_Overlay.pm:343 -msgid "Template parsed" -msgstr "Mal tolket" - -#: lib/RT/Template_Overlay.pm:391 -msgid "Template parsing error" -msgstr "" - -#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 -msgid "Templates" -msgstr "Maler" - -#: NOT FOUND IN SOURCE -msgid "Templates for %1\\n" -msgstr "Maler for %1\\n" - -#: lib/RT/CustomField_Overlay.pm:943 lib/RT/Record.pm:945 -msgid "That is already the current value" -msgstr "Verdien er allerede satt" - -#: lib/RT/CustomField_Overlay.pm:412 -msgid "That is not a value for this custom field" -msgstr "Det er ikke en verdi for dette fleksifeltet" - -#: lib/RT/Ticket_Overlay.pm:1994 -msgid "That is the same value" -msgstr "Det er den samme verdien" - -#: lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:614 -msgid "That principal already has that right" -msgstr "Den primæren har allerede den rettigheten" - -#: lib/RT/Queue_Overlay.pm:753 -#. ($args{'Type'}) -msgid "That principal is already a %1 for this queue" -msgstr "Den primæren er allerede en %1 for denne køen" - -#: lib/RT/Ticket_Overlay.pm:1435 -#. ($self->loc($args{'Type'})) -msgid "That principal is already a %1 for this ticket" -msgstr "Den primæren er allerede en %1 for denne køen" - -#: lib/RT/Queue_Overlay.pm:852 -#. ($args{'Type'}) -msgid "That principal is not a %1 for this queue" -msgstr "Den primæren er ikke en %1 for denne køen" - -#: NOT FOUND IN SOURCE -msgid "That principal is not a %1 for this ticket" -msgstr "Den primæren er ikke en %1 for denne saken" - -#: lib/RT/Ticket_Overlay.pm:1990 -msgid "That queue does not exist" -msgstr "Den køen eksisterer ikke" - -#: lib/RT/Ticket_Overlay.pm:3233 -msgid "That ticket has unresolved dependencies" -msgstr "Denne saken har uløste avhengigheter" - -#: NOT FOUND IN SOURCE -msgid "That user already has that right" -msgstr "Den brukeren har allerede den rettigheten" - -#: lib/RT/Action/CreateTickets.pm:710 lib/RT/Ticket_Overlay.pm:3037 -msgid "That user already owns that ticket" -msgstr "Den brukeren eier allerede den saken" - -#: lib/RT/Ticket_Overlay.pm:3012 -msgid "That user does not exist" -msgstr "Den brukeren finnes ikke" - -#: lib/RT/User_Overlay.pm:389 -msgid "That user is already privileged" -msgstr "Den brukeren er allerede priviligert" - -#: lib/RT/User_Overlay.pm:410 -msgid "That user is already unprivileged" -msgstr "Den brukeren er allerede upriviligert" - -#: lib/RT/User_Overlay.pm:402 -msgid "That user is now privileged" -msgstr "Denne brukeren er nå priviligert" - -#: lib/RT/User_Overlay.pm:423 -msgid "That user is now unprivileged" -msgstr "Dette brukeren er nå upriviligert" - -#: NOT FOUND IN SOURCE -msgid "That user is now unprivilegedileged" -msgstr "Den brukeren er allerede upriviligert" - -#: lib/RT/Ticket_Overlay.pm:3031 -msgid "That user may not own tickets in that queue" -msgstr "Den brukeren kan ikke eie saker i den køen" - -#: lib/RT/Link_Overlay.pm:233 -msgid "That's not a numerical id" -msgstr "Dette er ikke en numerisk id" - -#: html/SelfService/Display.html:53 html/Ticket/Create.html:177 html/Ticket/Elements/ShowSummary:49 -msgid "The Basics" -msgstr "Detaljer" - -#: lib/RT/ACE_Overlay.pm:112 -msgid "The CC of a ticket" -msgstr "CCen til en sak" - -#: lib/RT/ACE_Overlay.pm:113 -msgid "The administrative CC of a ticket" -msgstr "Administrative CCer for en sak" - -#: NOT FOUND IN SOURCE -msgid "The comment has been recorded" -msgstr "Kommentarer er lagret" - -#: bin/rt-crontool:275 -msgid "The following command will find all active tickets in the queue 'general' and set their priority to 99 if they haven't been touched in 4 hours:" -msgstr "De følgende kommandoene vil finne alle aktive saker i køen 'general' og sette deres prioritet til 99 hvis de ikke har blitt rørt de siste 4 timene:" - -#: NOT FOUND IN SOURCE -msgid "The following commands were not proccessed:\\n\\n" -msgstr "De følgende kommandoene ble ikke behandlet:\\n\\n" - -#: lib/RT/Record.pm:948 -msgid "The new value has been set." -msgstr "Den nye verdien har blitt satt." - -#: lib/RT/ACE_Overlay.pm:110 -msgid "The owner of a ticket" -msgstr "Eieren av en sak" - -#: lib/RT/ACE_Overlay.pm:111 -msgid "The requestor of a ticket" -msgstr "Forespørren av en sak" - -#: html/Admin/Elements/EditUserComments:47 -msgid "These comments aren't generally visible to the user" -msgstr "Disse kommentarene er generelt ikke synlig for brukeren" - -#: lib/RT/CustomField_Overlay.pm:978 -msgid "This custom field does not apply to that object" -msgstr "" - -#: html/Admin/Tools/Configuration.html:50 -msgid "This feature is only available to system administrators" -msgstr "" - -#: html/Ticket/Elements/PreviewScrips:96 -msgid "This message will be sent to..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "This ticket %1 %2 (%3)\\n" -msgstr "Denne saken %1 %2 (%3)\\n" - -#: bin/rt-crontool:266 -msgid "This tool allows the user to run arbitrary perl modules from within RT." -msgstr "Dette verktøyet tillater brukeren å kjøre perlmoduler fra inni RT." - -#: lib/RT/Transaction_Overlay.pm:301 -msgid "This transaction appears to have no content" -msgstr "Denne transaksjonen ser ikke ut til å ha noe innhold" - -#: html/Ticket/Elements/ShowRequestor:70 -#. ($rows) -msgid "This user's %1 highest priority tickets" -msgstr "Denne brukerens %1 høyst prioriterte saker" - -#: NOT FOUND IN SOURCE -msgid "This user's 25 highest priority tickets" -msgstr "Denne brukerens 23 høys prioriterte saker" - -#: lib/RT/Date.pm:420 -msgid "Thu." -msgstr "Tor." - -#: NOT FOUND IN SOURCE -msgid "Ticket" -msgstr "Sak" - -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 %2" -msgstr "Sak # %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 Jumbo update: %2" -msgstr "Sak $ %1 Jumbo oppdater: %2" - -#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket #%1 Jumbo update: %2" -msgstr "Sak #%1 Jumbo oppdatering: %2" - -#: html/Approvals/Elements/ShowDependency:67 -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Ticket #%1: %2" -msgstr "Sak #%1: %2" - -#: lib/RT/Action/CreateTickets.pm:1350 lib/RT/Action/CreateTickets.pm:1359 lib/RT/Action/CreateTickets.pm:605 lib/RT/Action/CreateTickets.pm:729 lib/RT/Action/CreateTickets.pm:741 -#. ($T::Tickets{$template_id}->Id) -#. ($T::Tickets{$template_id}->id) -#. ($ticket->Id) -msgid "Ticket %1" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:755 lib/RT/Ticket_Overlay.pm:775 -#. ($self->Id, $QueueObj->Name) -msgid "Ticket %1 created in queue '%2'" -msgstr "Sak %1 opprettet i '%2' køen" - -#: NOT FOUND IN SOURCE -msgid "Ticket %1 loaded\\n" -msgstr "Sak %1 lastet\\n" - -#: html/Search/Bulk.html:377 -#. ($Ticket->Id, $_) -msgid "Ticket %1: %2" -msgstr "Sak %1: %2" - -#: html/Admin/Elements/QueueTabs:74 -msgid "Ticket Custom Fields" -msgstr "" - -#: html/Ticket/History.html:46 html/Ticket/History.html:49 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket History # %1 %2" -msgstr "Sakshistorikk # %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Ticket Id" -msgstr "SaksId" - -#: etc/initialdata:324 -msgid "Ticket Resolved" -msgstr "Løst Sak" - -#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1207 -msgid "Ticket Transactions" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Ticket attachment" -msgstr "Saks-vedlegg" - -#: lib/RT/Tickets_Overlay.pm:1920 -msgid "Ticket content" -msgstr "Saks-innhold" - -#: lib/RT/Tickets_Overlay.pm:1969 -msgid "Ticket content type" -msgstr "Sakens innholdstype" - -#: lib/RT/Ticket_Overlay.pm:603 lib/RT/Ticket_Overlay.pm:617 lib/RT/Ticket_Overlay.pm:628 lib/RT/Ticket_Overlay.pm:763 -msgid "Ticket could not be created due to an internal error" -msgstr "Saken kunne ikke opprettes på grunn av en intern feil" - -#: NOT FOUND IN SOURCE -msgid "Ticket created" -msgstr "Sak opprettet" - -#: NOT FOUND IN SOURCE -msgid "Ticket creation failed" -msgstr "Saksopprettelse feilet" - -#: NOT FOUND IN SOURCE -msgid "Ticket deleted" -msgstr "Sak slettet" - -#: NOT FOUND IN SOURCE -msgid "Ticket id not found" -msgstr "Saksid ikke funnet" - -#: NOT FOUND IN SOURCE -msgid "Ticket killed" -msgstr "Sak drept" - -#: html/Ticket/Display.html:55 -msgid "Ticket metadata" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Ticket not found" -msgstr "Sak ikke funnet" - -#: etc/initialdata:310 -msgid "Ticket status changed" -msgstr "Saksstatus endret" - -#: NOT FOUND IN SOURCE -msgid "Ticket watchers" -msgstr "Saksovervåkere" - -#: lib/RT/Search/FromSQL.pm:82 -#. (ref $self) -msgid "TicketSQL search module" -msgstr "" - -#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:71 html/Search/Elements/Chart:109 lib/RT/CustomField_Overlay.pm:1206 -msgid "Tickets" -msgstr "Saker" - -#: NOT FOUND IN SOURCE -msgid "Tickets %1 %2" -msgstr "Saker %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Tickets %1 by %2" -msgstr "Saker %1 av %2" - -#: html/Tools/Reports/CreatedByDates.html:86 -msgid "Tickets created after" -msgstr "" - -#: html/Tools/Reports/CreatedByDates.html:88 -msgid "Tickets created before" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Tickets from %1" -msgstr "Saker fra %1" - -#: html/Tools/Reports/ResolvedByDates.html:87 -msgid "Tickets resolved after" -msgstr "" - -#: html/Tools/Reports/ResolvedByDates.html:89 -msgid "Tickets resolved before" -msgstr "" - -#: html/Approvals/Elements/ShowDependency:48 -msgid "Tickets which depend on this approval:" -msgstr "Saker som er avhengige av denne godkjennelsen:" - -#: html/Search/Elements/PickBasics:134 html/Ticket/Create.html:183 html/Ticket/Elements/EditBasics:72 -msgid "Time Estimated" -msgstr "" - -#: html/Search/Elements/PickBasics:135 html/Ticket/Create.html:196 html/Ticket/Elements/EditBasics:85 -msgid "Time Left" -msgstr "Tid Igjen" - -#: html/Search/Elements/PickBasics:133 html/Ticket/Create.html:189 html/Ticket/Elements/EditBasics:78 -msgid "Time Worked" -msgstr "Arbeidstid" - -#: lib/RT/Tickets_Overlay.pm:1891 -msgid "Time left" -msgstr "Tid igjen" - -#: html/Elements/Footer:51 -msgid "Time to display" -msgstr "Tid å vise" - -#: lib/RT/Tickets_Overlay.pm:1866 -msgid "Time worked" -msgstr "Arbeidstid" - -#: NOT FOUND IN SOURCE -msgid "TimeLeft" -msgstr "TidIgjen" - -#: lib/RT/Ticket_Overlay.pm:1167 -msgid "TimeWorked" -msgstr "ArbeidsTid" - -#: html/Search/Elements/EditFormat:74 -msgid "Title" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:" -msgstr "For å generere en diff av denne bekreftelsen:" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:\\n" -msgstr "For å genere en diff av denne bekreftelsen" - -#: html/Elements/Footer:62 -#. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') -msgid "To inquire about support, training, custom development or licensing, please contact %1." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1170 -msgid "Told" -msgstr "Fortalt" - -#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:74 html/Tools/index.html:46 html/Tools/index.html:49 -msgid "Tools" -msgstr "" - -#: html/Search/Elements/Chart:130 -msgid "Total" -msgstr "" - -#: etc/initialdata:252 -msgid "Transaction" -msgstr "Transaksjon" - -#: lib/RT/Transaction_Overlay.pm:805 -#. ($self->Data) -msgid "Transaction %1 purged" -msgstr "Transaksjon %1 slettet" - -#: lib/RT/Transaction_Overlay.pm:183 -msgid "Transaction Created" -msgstr "Transaksjon Opprettet" - -#: html/Admin/Elements/QueueTabs:78 -msgid "Transaction Custom Fields" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Transaction->Create couldn't, as you didn't specify a ticket id" -msgstr "Transaction->Create kunne ikke, siden du ikke spesifiserte en saksid" - -#: lib/RT/Transaction_Overlay.pm:128 -msgid "Transaction->Create couldn't, as you didn't specify an object type and id" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:870 -msgid "Transactions are immutable" -msgstr "Transaksjoner er låst" - -#: NOT FOUND IN SOURCE -msgid "Trying to delete a right: %1" -msgstr "Prøver å slette en rettighet: %1" - -#: lib/RT/Date.pm:418 -msgid "Tue." -msgstr "Tir." - -#: html/Admin/CustomFields/Modify.html:66 html/Admin/Elements/EditCustomField:65 html/Ticket/Elements/AddWatchers:54 html/Ticket/Elements/AddWatchers:65 html/Ticket/Elements/AddWatchers:75 lib/RT/Ticket_Overlay.pm:1168 lib/RT/Tickets_Overlay.pm:1705 -msgid "Type" -msgstr "Type" - -#: lib/RT/ScripCondition_Overlay.pm:128 -msgid "Unimplemented" -msgstr "Uimplementert" - -#: html/Admin/Users/Modify.html:89 -msgid "Unix login" -msgstr "Unix login" - -#: NOT FOUND IN SOURCE -msgid "UnixUsername" -msgstr "UnixBrukerNavn" - -#: lib/RT/Attachment_Overlay.pm:289 lib/RT/Record.pm:861 -#. ($self->ContentEncoding) -#. ($ContentEncoding) -msgid "Unknown ContentEncoding %1" -msgstr "Ukjent InnholdsFormatering %1" - -#: html/Search/Build.html:455 lib/RT/Report/Tickets.pm:410 -msgid "Unknown field: $key" -msgstr "" - -#: html/Elements/SelectResultsPerPage:58 -msgid "Unlimited" -msgstr "Ubegrenset" - -#: html/Search/Elements/SelectSearchesForObjects:64 -msgid "Unnamed search" -msgstr "" - -#: etc/initialdata:32 -msgid "Unprivileged" -msgstr "Upriviligert" - -#: html/Admin/Elements/EditCustomFields:60 -msgid "Unselected Custom Fields" -msgstr "" - -#: html/Admin/CustomFields/Objects.html:61 -msgid "Unselected objects" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:659 -msgid "Untaken" -msgstr "Ikke tatt" - -#: html/Admin/Elements/EditScrip:128 html/Elements/RT__Ticket/ColumnMap:302 html/Search/Bulk.html:193 html/Search/Bulk.html:75 -msgid "Update" -msgstr "Oppdater" - -#: NOT FOUND IN SOURCE -msgid "Update ID" -msgstr "Oppdater ID" - -#: html/Ticket/Update.html:135 -msgid "Update Ticket" -msgstr "" - -#: html/Search/Bulk.html:126 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:72 -msgid "Update Type" -msgstr "Oppdater Type" - -#: NOT FOUND IN SOURCE -msgid "Update all these tickets at once" -msgstr "Oppdater alle disse sakene samtidig" - -#: NOT FOUND IN SOURCE -msgid "Update email" -msgstr "Oppdater epost" - -#: html/Search/Bulk.html:200 html/Search/Results.html:78 -msgid "Update multiple tickets" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Update name" -msgstr "Oppdater navn" - -#: lib/RT/Action/CreateTickets.pm:750 lib/RT/Interface/Web.pm:584 -msgid "Update not recorded." -msgstr "Oppdatering ikke lagret." - -#: NOT FOUND IN SOURCE -msgid "Update selected tickets" -msgstr "Oppdater valgte saker" - -#: NOT FOUND IN SOURCE -msgid "Update signature" -msgstr "Oppdater signatur" - -#: html/Ticket/ModifyAll.html:84 -msgid "Update ticket" -msgstr "Oppdater sak" - -#: NOT FOUND IN SOURCE -msgid "Update ticket # %1" -msgstr "Ooppdater sak # %1" - -#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 -#. ($Ticket->id) -msgid "Update ticket #%1" -msgstr "Oppdater sak #%1" - -#: html/Ticket/Update.html:158 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Update ticket #%1 (%2)" -msgstr "Oppdater sak #%1 (%2)" - -#: lib/RT/Action/CreateTickets.pm:748 lib/RT/Interface/Web.pm:583 -msgid "Update type was neither correspondence nor comment." -msgstr "Oppdateringstype var verken korrespondanse eller kommentar." - -#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/CustomField_Overlay.pm:1284 lib/RT/Ticket_Overlay.pm:1171 -msgid "Updated" -msgstr "Oppdatert" - -#: html/Tools/Offline.html:93 -msgid "Upload" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:84 -msgid "Upload multiple files" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:79 -msgid "Upload multiple images" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:85 -msgid "Upload one file" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:80 -msgid "Upload one image" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:86 -msgid "Upload up to %1 files" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:81 -msgid "Upload up to %1 images" -msgstr "" - -#: html/Tools/Offline.html:93 -msgid "Upload your changes" -msgstr "" - -#: html/Admin/index.html:90 -msgid "Use other RT administrative tools" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User %1 %2: %3\\n" -msgstr "Bruker %1 %2: %3\\n" - -#: NOT FOUND IN SOURCE -msgid "User %1 Password: %2\\n" -msgstr "Bruker %1 Passord: %2\\n" - -#: lib/RT/Ticket_Overlay.pm:506 -#. ($args{'Owner'}) -msgid "User '%1' could not be found." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found" -msgstr "Brukeren '%1' ble ikke funnet" - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found\\n" -msgstr "Brukeren '%1' ble ikke funnet" - -#: etc/initialdata:132 etc/initialdata:206 -msgid "User Defined" -msgstr "Bruker Definert" - -#: html/Admin/Elements/EditScrip:93 -msgid "User Defined conditions and actions" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User ID" -msgstr "BrukerID" - -#: NOT FOUND IN SOURCE -msgid "User Id" -msgstr "BrukerId" - -#: html/Admin/Elements/CustomFieldTabs:72 html/Admin/Elements/GroupTabs:68 html/Admin/Elements/QueueTabs:85 html/Admin/Elements/SystemTabs:68 html/Admin/Global/index.html:80 -msgid "User Rights" -msgstr "Brukerrettigheter" - -#: html/Admin/Users/Modify.html:301 -#. ($msg) -msgid "User could not be created: %1" -msgstr "Bruker kunne ikke opprettes: %1" - -#: lib/RT/User_Overlay.pm:330 -msgid "User created" -msgstr "Bruker opprettet" - -#: html/Admin/CustomFields/GroupRights.html:74 html/Admin/Global/GroupRights.html:88 html/Admin/Groups/GroupRights.html:75 html/Admin/Queues/GroupRights.html:90 -msgid "User defined groups" -msgstr "Brukerdefinerte grupper" - -#: lib/RT/User_Overlay.pm:592 lib/RT/User_Overlay.pm:612 -msgid "User loaded" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User notified" -msgstr "Bruker informert" - -#: NOT FOUND IN SOURCE -msgid "User view" -msgstr "Brukervisning" - -#: html/Admin/Groups/index.html:103 -msgid "User-defined groups" -msgstr "" - -#: html/Admin/Users/Modify.html:69 html/Elements/Login:90 html/Ticket/Elements/AddWatchers:56 -msgid "Username" -msgstr "Brukernavn" - -#: html/Admin/Elements/GlobalCustomFieldTabs:55 html/Admin/Elements/SelectNewGroupMembers:47 html/Admin/Elements/Tabs:53 html/Admin/Global/CustomFields/index.html:64 html/Admin/Groups/Members.html:76 html/Admin/Queues/People.html:89 html/Admin/index.html:62 html/User/Groups/Members.html:79 lib/RT/CustomField_Overlay.pm:1208 -msgid "Users" -msgstr "Brukere" - -#: html/Admin/Users/index.html:85 -msgid "Users matching search criteria" -msgstr "Brukere som treffer søkekriteria" - -#: bin/rt-crontool:134 -#. ($transaction->id) -msgid "Using transaction #%1..." -msgstr "" - -#: lib/RT/Tickets_Overlay_SQL.pm:528 -msgid "Valid Query" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:80 -msgid "Validation" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ValueOfQueue" -msgstr "KøVerdi" - -#: html/Admin/CustomFields/Modify.html:130 html/Admin/Elements/EditCustomField:78 -msgid "Values" -msgstr "Verdier" - -#: NOT FOUND IN SOURCE -msgid "VrijevormEnkele" -msgstr "VrijevormEnkele" - -#: lib/RT/Queue_Overlay.pm:107 -msgid "Watch" -msgstr "Overvåk" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "WatchAsAdminCc" -msgstr "OvervåkSomAdminCc" - -#: NOT FOUND IN SOURCE -msgid "Watcher loaded" -msgstr "Overvåker lastet" - -#: html/Admin/Elements/QueueTabs:63 -msgid "Watchers" -msgstr "Overvåkere" - -#: NOT FOUND IN SOURCE -msgid "WebEncoding" -msgstr "WebFormatering" - -#: lib/RT/Date.pm:419 -msgid "Wed." -msgstr "Ons." - -#: html/Tools/MyDay.html:75 -msgid "What I did today" -msgstr "" - -#: etc/initialdata:521 -msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" -msgstr "Når en sak har blitt godkjent av alle godkjennere, legg til korrespondanse for den opprinnelige saken" - -#: etc/initialdata:485 -msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" -msgstr "Når en sak har blitt godkjent av en godkjenner, legg til korrespondanse til den orginale saken" - -#: etc/initialdata:146 -msgid "When a ticket is created" -msgstr "Når er sak er opprettet" - -#: etc/initialdata:418 -msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" -msgstr "Når er godkjennelsessak blir opprettet, gi melding til Eier og AdminCc om saken som venter på deres godkjenning" - -#: etc/initialdata:151 -msgid "When anything happens" -msgstr "Når noe skjer" - -#: etc/initialdata:199 -msgid "Whenever a ticket is resolved" -msgstr "Når en sak er løst" - -#: etc/initialdata:185 -msgid "Whenever a ticket's owner changes" -msgstr "Når en sak får ny eier" - -#: etc/initialdata:178 etc/upgrade/3.1.17/content:16 -msgid "Whenever a ticket's priority changes" -msgstr "" - -#: etc/initialdata:193 -msgid "Whenever a ticket's queue changes" -msgstr "Når en sak flyttes til en ny kø" - -#: etc/initialdata:170 -msgid "Whenever a ticket's status changes" -msgstr "Når en saks status endres" - -#: etc/initialdata:207 -msgid "Whenever a user-defined condition occurs" -msgstr "Når brukerdefinerte forhold intreffer" - -#: etc/initialdata:164 -msgid "Whenever comments come in" -msgstr "Når kommentarer kommer inn" - -#: etc/initialdata:157 -msgid "Whenever correspondence comes in" -msgstr "Når korrespondanse kommer inn" - -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:88 -msgid "Work" -msgstr "Arbeid" - -#: html/Search/Results.html:82 -msgid "Work offline" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "WorkPhone" -msgstr "ArbeidsTelefon" - -#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 -msgid "Worked" -msgstr "Arbeidet" - -#: lib/RT/Ticket_Overlay.pm:3140 -msgid "You already own this ticket" -msgstr "Du eier allerede denne saken" - -#: html/autohandler:214 html/autohandler:222 -msgid "You are not an authorized user" -msgstr "Du er ikke en autorisert bruker" - -#: html/Prefs/Search.html:56 -msgid "You can also edit the predefined search itself" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3025 -msgid "You can only reassign tickets that you own or that are unowned" -msgstr "Du kan bare omfordele saker som du eier eller som ikke har en eier" - -#: lib/RT/Ticket_Overlay.pm:3021 -msgid "You can only take tickets that are unowned" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "You don't have permission to view that ticket.\\n" -msgstr "Du har ikke tilgang til å se den saken.\\n" - -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 -#. ($num, $queue) -msgid "You found %1 tickets in queue %2" -msgstr "Du fant %1 saker i %2 køen" - -#: html/NoAuth/Logout.html:52 -msgid "You have been logged out of RT." -msgstr "" - -#: html/SelfService/Display.html:133 -msgid "You have no permission to create tickets in that queue." -msgstr "Du har ikke tilgang til å opprette saker i den køen." - -#: lib/RT/Ticket_Overlay.pm:2003 -msgid "You may not create requests in that queue." -msgstr "Du kan ikke opprette forespørsler i den køen." - -#: html/NoAuth/Logout.html:56 -msgid "You're welcome to login again" -msgstr "Velkommen tilbake" - -#: NOT FOUND IN SOURCE -msgid "Your %1 requests" -msgstr "Dine %1 forespørsler" - -#: NOT FOUND IN SOURCE -msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" -msgstr "Din RT administrastor har feilkonfigurert mail aliasene som kaller RT" - -#: etc/initialdata:502 -msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "Din forespørsel har blitt godkjent av %1. Andre godkjennelser avventer kanskje fortsatt" - -#: etc/initialdata:540 -msgid "Your request has been approved." -msgstr "Din forespørsel ble godkjent." - -#: NOT FOUND IN SOURCE -msgid "Your request was rejected" -msgstr "Din forespørsel ble avvist" - -#: etc/initialdata:445 -msgid "Your request was rejected." -msgstr "Din forespørsel ble avvist" - -#: html/autohandler:251 -msgid "Your username or password is incorrect" -msgstr "Ditt brukernavn/passord er ugyldig" - -#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 -msgid "Zip" -msgstr "Zip" - -#: NOT FOUND IN SOURCE -msgid "[no subject]" -msgstr "[ikke noe emne]" - -#: lib/RT/System.pm:87 -msgid "allow creation of saved searches" -msgstr "" - -#: lib/RT/System.pm:86 -msgid "allow loading of saved searches" -msgstr "" - -#: html/User/Elements/DelegateRights:80 -#. ($right->PrincipalObj->Object->SelfDescription) -msgid "as granted to %1" -msgstr "som tildelt til %1" - -#: html/Search/Results.html:83 -msgid "chart" -msgstr "" - -#: html/SelfService/Closed.html:49 -msgid "closed" -msgstr "lukket" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 -msgid "contains" -msgstr "inneholder" - -#: NOT FOUND IN SOURCE -msgid "content" -msgstr "innhold" - -#: NOT FOUND IN SOURCE -msgid "content-type" -msgstr "innholdstype" - -#: NOT FOUND IN SOURCE -msgid "correspondence (probably) not sent" -msgstr "korrespondanse (sansynligvis) ikke sendt" - -#: NOT FOUND IN SOURCE -msgid "correspondence sent" -msgstr "korrespondanse sendt" - -#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:346 -msgid "days" -msgstr "dager" - -#: NOT FOUND IN SOURCE -msgid "dead" -msgstr "død" - -#: NOT FOUND IN SOURCE -msgid "delete" -msgstr "slett" - -#: lib/RT/Queue_Overlay.pm:87 -msgid "deleted" -msgstr "slettet" - -#: html/Search/Elements/PickBasics:61 -msgid "does not match" -msgstr "treffer ikke" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 -msgid "doesn't contain" -msgstr "inneholder ikke" - -#: html/Elements/SelectEqualityOperator:59 -msgid "equal to" -msgstr "lik som" - -#: html/Search/Build.html:547 -msgid "error: can't move down" -msgstr "" - -#: html/Search/Build.html:569 -msgid "error: can't move left" -msgstr "" - -#: html/Search/Build.html:528 -msgid "error: can't move up" -msgstr "" - -#: html/Search/Build.html:612 -msgid "error: nothing to delete" -msgstr "" - -#: html/Search/Build.html:533 html/Search/Build.html:552 html/Search/Build.html:574 html/Search/Build.html:603 -msgid "error: nothing to move" -msgstr "" - -#: html/Search/Build.html:630 -msgid "error: nothing to toggle" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "false" -msgstr "usant" - -#: NOT FOUND IN SOURCE -msgid "filename" -msgstr "filnavn" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 -msgid "greater than" -msgstr "større enn" - -#: lib/RT/Group_Overlay.pm:214 -#. ($self->Name) -msgid "group '%1'" -msgstr "gruppe '%1'" - -#: html/Search/Results.html:88 -#. ($m->scomp('Elements/SelectGroupBy', Name => 'PrimaryGroupBy', Query => $Query)) -msgid "grouped by %1" -msgstr "" - -#: lib/RT/Date.pm:342 -msgid "hours" -msgstr "timer" - -#: html/Search/Elements/PickBasics:48 -msgid "id" -msgstr "id" - -#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:162 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 -msgid "is" -msgstr "er" - -#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:163 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 -msgid "isn't" -msgstr "er ikke" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 -msgid "less than" -msgstr "mindre enn" - -#: html/Search/Elements/PickBasics:60 -msgid "matches" -msgstr "treffer" - -#: lib/RT/Date.pm:338 -msgid "min" -msgstr "min" - -#: NOT FOUND IN SOURCE -msgid "minutes" -msgstr "minutter" - -#: NOT FOUND IN SOURCE -msgid "modifications\\n\\n" -msgstr "endringer\\n\\n" - -#: lib/RT/Date.pm:354 -msgid "months" -msgstr "måneder" - -#: lib/RT/Queue_Overlay.pm:82 -msgid "new" -msgstr "ny" - -#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:65 -msgid "no name" -msgstr "" - -#: html/Admin/Elements/EditScrips:64 -msgid "no value" -msgstr "ingen verdi" - -#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 -msgid "none" -msgstr "ingen" - -#: html/Elements/SelectEqualityOperator:59 -msgid "not equal to" -msgstr "ikke lik som" - -#: NOT FOUND IN SOURCE -msgid "notlike" -msgstr "ikkelik" - -#: html/SelfService/Elements/MyRequests:82 lib/RT/Queue_Overlay.pm:83 -msgid "open" -msgstr "åpen" - -#: lib/RT/Group_Overlay.pm:219 -#. ($self->Name, $user->Name) -msgid "personal group '%1' for user '%2'" -msgstr "personlig gruppe '%1' for bruker '%2'" - -#: lib/RT/Group_Overlay.pm:227 -#. ($queue->Name, $self->Type) -msgid "queue %1 %2" -msgstr "kø %1 %2" - -#: lib/RT/Queue_Overlay.pm:86 -msgid "rejected" -msgstr "avvist" - -#: lib/RT/Queue_Overlay.pm:85 -msgid "resolved" -msgstr "løst" - -#: lib/RT/Date.pm:334 -msgid "sec" -msgstr "sek" - -#: lib/RT/System.pm:85 -msgid "show Configuration tab" -msgstr "" - -#: html/Search/Results.html:80 -msgid "spreadsheet" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:84 -msgid "stalled" -msgstr "pauset" - -#: html/Search/Results.html:89 -#. ($m->scomp('Elements/SelectChartType', Name => 'ChartStyle')) -msgid "style: %1" -msgstr "" - -#: html/Prefs/MyRT.html:93 -msgid "summary rows" -msgstr "" - -#: lib/RT/Group_Overlay.pm:222 -#. ($self->Type) -msgid "system %1" -msgstr "system %1" - -#: lib/RT/Group_Overlay.pm:233 -#. ($self->Type) -msgid "system group '%1'" -msgstr "systemgruppe '%1'" - -#: html/Elements/Error:64 html/SelfService/Error.html:63 -msgid "the calling component did not specify why" -msgstr "den kallende komponenten oppga ikke hvorfor" - -#: lib/RT/Group_Overlay.pm:230 -#. ($self->Instance, $self->Type) -msgid "ticket #%1 %2" -msgstr "sak #%1 %2" - -#: NOT FOUND IN SOURCE -msgid "true" -msgstr "sant" - -#: lib/RT/Group_Overlay.pm:236 -#. ($self->Id) -msgid "undescribed group %1" -msgstr "ubeskrevet gruppe %1" - -#: NOT FOUND IN SOURCE -msgid "undescripbed group %1" -msgstr "ubeskrevet gruppe %1" - -#: lib/RT/Group_Overlay.pm:211 -#. ($user->Object->Name) -msgid "user %1" -msgstr "bruker %1" - -#: lib/RT/Date.pm:350 -msgid "weeks" -msgstr "uker" - -#: NOT FOUND IN SOURCE -msgid "with template %1" -msgstr "med malen %1" - -#: lib/RT/Date.pm:358 -msgid "years" -msgstr "år" - diff --git a/rt/lib/RT/I18N/pt_br.po b/rt/lib/RT/I18N/pt_br.po deleted file mode 100644 index 98fa2069e..000000000 --- a/rt/lib/RT/I18N/pt_br.po +++ /dev/null @@ -1,6528 +0,0 @@ -# translation of pt_br.po to Portugues Brasileiro -# Header entry was created by KBabel! -# -# Fernando Frota Machado de Morais <frota@cecom.ufmg.br>, 2008. -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"MIME-Version: 1.0\n" -"PO-Revision-Date: 2008-02-23 11:48-0300\n" -"Project-Id-Version: RT 3.6.x - pt_br\n" -"Language-Team: Portugues Brasileiro <pt@li.org>\n" -"X-Generator: KBabel 1.11.4\n" -"MIME-Version: 1.0\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"Last-Translator: Fernando Frota Machado de Morais <frota@cecom.ufmg.br>\n" - -msgid "" -"RT's email command mode requires PGP authentication. Either you didn't sign " -"your message, or your signature could not be verified." -msgstr "" -"O modo de comandos por e-mail do RT requer autenticação PGP. Ou você não " -"assinou sua mensagem ou sua assinatura não pôde ser verificada." - -#: html/Widgets/SavedSearch:117 -#. ($self->{CurrentSearch}{Object}->Description) -msgid " %1 deleted." -msgstr " %1 removido." - -#: html/Widgets/SavedSearch:94 -#. ($self->{CurrentSearch}{Description}, $args->{Description}) -msgid " %1 renamed to %2." -msgstr " %1 renomeado para %2." - -#: html/Widgets/SavedSearch:107 -#. ($args->{Description}) -msgid " %1 saved." -msgstr " %1 salvo." - -#: html/Approvals/Elements/Approve:50 html/Approvals/Elements/ShowDependency:73 html/SelfService/Display.html:48 html/Ticket/Display.html:49 html/Ticket/Display.html:53 -#. ($ticket->Id, $ticket->Subject) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -#. ($TicketObj->Id, $TicketObj->Subject) -#. ($Ticket->id, $Ticket->Subject) -msgid "#%1: %2" -msgstr "" - -#: html/Elements/ShowSearch:116 -msgid "$1" -msgstr "" - -#: lib/RT/Record.pm:957 -#. ($label) -msgid "$prefix %1" -msgstr "$prefixo %1" - -#: lib/RT/URI/fsck_com_rt.pm:258 -#. ($self->ObjectType, $self->Object->Id) -msgid "%1 #%2" -msgstr "" - -#: lib/RT/Date.pm:367 -#. ($s, $time_unit) -msgid "%1 %2" -msgstr "" - -#: lib/RT/Date.pm:403 -#. ($self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)) -msgid "%1 %2 %3 %4:%5:%6 %7" -msgstr "" - -#: lib/RT/Record.pm:1707 lib/RT/Transaction_Overlay.pm:668 lib/RT/Transaction_Overlay.pm:711 -#. ($cf->Name, $new_value->Content) -#. ($field, $self->NewValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 added" -msgstr "%1 %2 adicionado" - -#: lib/RT/Date.pm:364 -#. ($s, $time_unit) -msgid "%1 %2 ago" -msgstr "%1 %2 atrás" - -#: lib/RT/Record.pm:1714 lib/RT/Transaction_Overlay.pm:675 -#. ($cf->Name, $old_content, $new_value->Content) -#. ($field, $self->OldValue, $self->NewValue) -msgid "%1 %2 changed to %3" -msgstr "%1 %2 mudado para %3" - -#: lib/RT/Record.pm:1711 lib/RT/Transaction_Overlay.pm:671 lib/RT/Transaction_Overlay.pm:717 -#. ($cf->Name, $old_value->Content) -#. ($field, $self->OldValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 deleted" -msgstr "%1 %2 removido" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 of group %3" -msgstr "%1 %2 do grupo %3" - -#: html/Admin/Elements/EditScrips:67 html/Admin/Elements/ListGlobalScrips:65 html/Ticket/Elements/PreviewScrips:105 -#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) -msgid "%1 %2 with template %3" -msgstr "%1 %2 com modelo %3" - -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 this ticket\\n" -msgstr "%1 (%2) %3 este tíquete\\n" - -#: html/Ticket/Elements/ShowAttachments:74 -#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) -msgid "%1 (%2) by %3" -msgstr "%1 (%2) por %3" - -#: html/SelfService/Update.html:62 html/Ticket/Elements/EditBasics:110 html/Ticket/Update.html:63 html/Ticket/Update.html:65 html/Tools/MyDay.html:71 -#. (loc($TicketObj->Status)) -#. ($TicketObj->OwnerObj->Name()) -#. (loc($DefaultStatus)) -#. (loc($Ticket->Status())) -msgid "%1 (Unchanged)" -msgstr "%1 (Sem alteração)" - -#: NOT FOUND IN SOURCE -msgid "%1 - %2 shown" -msgstr "%1 - %2 apresentados" - -#: bin/rt-crontool:239 bin/rt-crontool:246 bin/rt-crontool:252 -#. ("--search-argument", "--search") -#. ("--condition-argument", "--condition") -#. ("--action-argument", "--action") -msgid "%1 - An argument to pass to %2" -msgstr "%1 - Um argumento para passar para %2" - -#: bin/rt-crontool:264 -#. ("--verbose") -msgid "%1 - Output status updates to STDOUT" -msgstr "%1 - Mostra atualizações de estado no STDOUT" - -#: bin/rt-crontool:255 -#. ("--template-id") -msgid "%1 - Specify id of the template you want to use" -msgstr "%1 - Especifique o id do modelo que você quer usar" - -#: bin/rt-crontool:258 -#. ("--transaction") -msgid "%1 - Specify if you want to use either 'first' or 'last' transaction" -msgstr "%1 - Especifique se você quer usar a 'primeira' ou a 'última' transação" - -#: bin/rt-crontool:249 -#. ("--action") -msgid "%1 - Specify the action module you want to use" -msgstr "%1 - Especifica o módulo de ação que você quer usar" - -#: bin/rt-crontool:243 -#. ("--condition") -msgid "%1 - Specify the condition module you want to use" -msgstr "%1 - Especifica o módulo de condição que você quer usar" - -#: bin/rt-crontool:236 -#. ("--search") -msgid "%1 - Specify the search module you want to use" -msgstr "%1 - Especifica o módulo de busca que você quer usar" - -#: bin/rt-crontool:261 -#. ("--transaction-type") -msgid "%1 - Specify the type of a transaction you want to use" -msgstr "%1 - Especifique o tipo de transação você quer usar" - -#: html/Elements/Footer:58 -#. ('»|«', $RT::VERSION, '2006', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -msgid "%1 RT %2 Copyright 1996-%3 %4." -msgstr "%1 RT %2 Direitos Reservados 1996-%3 %4." - -#: lib/RT/ScripAction_Overlay.pm:152 -#. ($self->Id) -msgid "%1 ScripAction loaded" -msgstr "ScripAction %1 carregado" - -#: lib/RT/Record.pm:1744 -#. ($args{'Value'}, $cf->Name) -msgid "%1 added as a value for %2" -msgstr "%1 adicionado como um valor de %2" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on" -msgstr "Aliases %1 requerem um TicketId no qual trabalhar" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on " -msgstr "Aliases %1 requerem um TicketId no qual trabalhar " - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on (from %2) %3" -msgstr "Aliases %1 requerem um TicketId no qual trabalhar (de %2) %3" - -#: lib/RT/Link_Overlay.pm:146 lib/RT/Link_Overlay.pm:153 -#. ($args{'Base'}) -#. ($args{'Target'}) -msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "%1 parece ser um objeto local, mas não pode ser encontrado no banco de dados" - -#: html/Ticket/Elements/ShowDates:75 lib/RT/Transaction_Overlay.pm:552 -#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) -#. ($self->BriefDescription , $self->CreatorObj->Name) -msgid "%1 by %2" -msgstr "%1 por %2" - -#: lib/RT/Transaction_Overlay.pm:809 lib/RT/Transaction_Overlay.pm:818 lib/RT/Transaction_Overlay.pm:821 -#. ($self->Field , $q1->Name , $q2->Name) -#. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") -msgid "%1 changed from %2 to %3" -msgstr "%1 mudado de %2 para %3" - -#: html/Search/Build.html:215 -#. ($Description) -msgid "%1 copy" -msgstr "%1 copiado" - -#: lib/RT/Record.pm:961 -msgid "%1 could not be set to %2." -msgstr "%1 não pôde ser mudado para %2" - -#: NOT FOUND IN SOURCE -msgid "%1 couldn't init a transaction (%2)\\n" -msgstr "%1 não pôde iniciar uma transação (%2)\\n" - -#: NOT FOUND IN SOURCE -msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." -msgstr "" -"%1 não pôde definir o estado como resolvido. O banco de dados do RT pode " -"estar inconsistente." - -#: lib/RT/Transaction_Overlay.pm:592 -#. ($obj_type) -msgid "%1 created" -msgstr "%1 criado" - -#: lib/RT/Transaction_Overlay.pm:597 -#. ($obj_type) -msgid "%1 deleted" -msgstr "%1 removido" - -#: etc/initialdata:593 -msgid "%1 highest priority tickets I own" -msgstr "Meus %1 tíquetes de mais alta prioridade" - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I own..." -msgstr "%1 tíquetes de mais alta prioridade que eu possuo..." - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I requested..." -msgstr "%1 tíquetes de mais alta prioridade que eu requeri..." - -#: bin/rt-crontool:231 -#. ($0) -msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." -msgstr "%1 é uma ferramenta que age sobre os tíquetes a partir de uma ferramenta externa de agendamento, como cron." - -#: lib/RT/Queue_Overlay.pm:865 -#. ($principal->Object->Name, $args{'Type'}) -msgid "%1 is no longer a %2 for this queue." -msgstr "%1 não é mais um %2 desta fila." - -#: NOT FOUND IN SOURCE -msgid "%1 is no longer a %2 for this ticket." -msgstr "%1 não é mais um %2 deste tíquete." - -#: NOT FOUND IN SOURCE -msgid "%1 is no longer a value for custom field %2" -msgstr "%1 não é mais um valor para o campo personalizado %2" - -#: NOT FOUND IN SOURCE -msgid "%1 isn't a valid Queue id." -msgstr "%1 não é um identificador de fila válido." - -#: html/Ticket/Elements/ShowTime:49 html/Ticket/Elements/ShowTime:51 -#. ($minutes) -msgid "%1 min" -msgstr "" - -#: etc/initialdata:601 -msgid "%1 newest unowned tickets" -msgstr "%1 tíquetes mais recentes sem proprietário" - -#: NOT FOUND IN SOURCE -msgid "%1 not shown" -msgstr "%1 não mostrado" - -#: lib/RT/CustomField_Overlay.pm:896 -msgid "%1 objects" -msgstr "%1 objetos" - -#: html/User/Elements/DelegateRights:99 -#. (loc($ObjectType =~ /^RT::(.*)$/)) -msgid "%1 rights" -msgstr "%1 direitos" - -#: NOT FOUND IN SOURCE -msgid "%1 succeeded\\n" -msgstr "%1 teve sucesso\\n" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for $MessageId" -msgstr "Tipo %1 desconhecido para $MessageId" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for %2" -msgstr "Tipo %1 desconhecido para %2" - -#: NOT FOUND IN SOURCE -msgid "%1 was created without a CurrentUser\\n" -msgstr "%1 foi criado sem um CurrentUser\\n" - -#: lib/RT/Action/ResolveMembers.pm:65 -#. (ref $self) -msgid "%1 will resolve all members of a resolved group ticket." -msgstr "%1 resolverá todos os membros de um grupo de tíquetes resolvidos." - -#: lib/RT/CustomField_Overlay.pm:897 -msgid "%1's %2 objects" -msgstr "%1's %2 objetos" - -#: lib/RT/CustomField_Overlay.pm:898 -msgid "%1's %2's %3 objects" -msgstr "%1's %2's %3 objetos" - -#: html/Search/Elements/SearchPrivacy:54 html/Search/Elements/SelectSearchObject:57 html/Search/Elements/SelectSearchesForObjects:59 -#. ($object->Name) -#. ($Object->Name) -msgid "%1's saved searches" -msgstr "Primeiras %1 buscas salvas" - -#: lib/RT/Transaction_Overlay.pm:502 -#. ($self) -msgid "%1: no attachment specified" -msgstr "%1: nenhum arquivo anexo especificado" - -#: html/Ticket/Elements/ShowTransactionAttachments:80 -#. ($size) -msgid "%1b" -msgstr "" - -#: html/Ticket/Elements/ShowTransactionAttachments:77 -#. (int( $size / 102.4 ) / 10) -msgid "%1k" -msgstr "" - -#: html/Ticket/Elements/ShowTime:51 -#. (sprintf("%.1f",$minutes / 60)) -msgid "%quant(%1,hour)" -msgstr "%quant(%1,hora)" - -#: lib/RT/Ticket_Overlay.pm:1144 -#. ($args{'Status'}) -msgid "'%1' is an invalid value for status" -msgstr "'%1' é um valor inválido para estado " - -#: NOT FOUND IN SOURCE -msgid "'%1' not a recognized action. " -msgstr "'%1' não é uma ação reconhecida." - -#: NOT FOUND IN SOURCE -msgid "(Check box to delete group member)" -msgstr "(Marcar caixa para remover o membro do grupo)" - -#: NOT FOUND IN SOURCE -msgid "(Check box to delete scrip)" -msgstr "(Marcar caixa para remover o scrip)" - -#: html/Admin/Elements/EditCustomFieldValues:52 html/Admin/Elements/EditQueueWatchers:52 html/Admin/Elements/EditScrips:58 html/Admin/Elements/EditTemplates:59 html/Admin/Groups/Members.html:75 html/Elements/EditLinks:56 html/Ticket/Elements/EditPeople:69 html/User/Groups/Members.html:78 -msgid "(Check box to delete)" -msgstr "(Marcar caixa para remover)" - -#: html/Ticket/Elements/PreviewScrips:101 -msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "(Marcar caixas para desativar notificações para os destinatários listados)" - -#: html/Ticket/Elements/PreviewScrips:125 -msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "(Marcar caixas para ativar notificações para os destinatários listados)" - -#: html/Ticket/Create.html:220 -msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(Informar identificação de tíquetes ou URLs, separadas por espaço)" - -#: html/Admin/Queues/Modify.html:77 html/Admin/Queues/Modify.html:83 -#. ($RT::CorrespondAddress) -#. ($RT::CommentAddress) -msgid "(If left blank, will default to %1)" -msgstr "(Se deixado em branco, será entendido como %)" - -#: NOT FOUND IN SOURCE -msgid "(No Value)" -msgstr "(Sem Valor)" - -#: html/Admin/Elements/EditCustomFields:76 html/Admin/Elements/ListGlobalCustomFields:55 -msgid "(No custom fields)" -msgstr "(Nenhum campo personalizado)" - -#: html/Admin/Groups/Members.html:73 html/User/Groups/Members.html:76 -msgid "(No members)" -msgstr "(Sem membros)" - -#: html/Admin/Elements/EditScrips:55 html/Admin/Elements/ListGlobalScrips:50 -msgid "(No scrips)" -msgstr "(Sem scrips)" - -#: html/Admin/Elements/EditTemplates:54 -msgid "(No templates)" -msgstr "(Nenhum modelo)" - -#: html/Admin/Elements/PickCustomFields:49 html/Admin/Elements/PickObjects:49 -msgid "(None)" -msgstr "(Nenhum)" - -#: html/Ticket/Update.html:92 -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "(Envia uma cópia oculta desta atualização para uma lista de endereços de e-mails separados por vírgula.<strong>Não</strong> altera quem vai receber atualizações futuras.)" - -#: html/Ticket/Create.html:105 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "(Envia uma cópia desta atualização para uma lista de endereços de e-mails administrativos separados por vírgula. Estas pessoas <strong>vão</strong> receber atualizações futuras.)" - -#: html/Ticket/Update.html:88 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "(Envia uma cópia desta atualização para uma lista de endereços de e-mails separados por vírgula.<strong>Não</strong> altera quem vai receber atualizações futuras.)" - -#: html/Ticket/Create.html:95 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "(Envia uma cópia desta atualização para uma lista de endereços de separados por vírgula. Estas pessoas <strong>vão</strong> receber atualizações futuras.)" - -#: html/Admin/Elements/EditScrip:98 -msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "" -"(Use estes campos quando você escolhar 'Definido pelo Usuário' para uma " -"condição ou ação)" - -#: html/Ticket/Elements/EditWatchers:62 html/Ticket/Elements/ShowUserEntry:55 -msgid "(Will not be sent email)" -msgstr "(Não enviará e-mail)" - -#: html/Tools/MyDay.html:53 -#. ($session{'CurrentUser'}->Name) -msgid "(displaying new and open tickets for %1)" -msgstr "(mostrando tíquetes novos e abertos pra %1)" - -#: html/Admin/Groups/index.html:59 html/User/Groups/index.html:56 -msgid "(empty)" -msgstr "(vazio)" - -#: html/Admin/Users/index.html:62 -msgid "(no name listed)" -msgstr "(nenhum nome listado)" - -#: NOT FOUND IN SOURCE -msgid "(no subject)" -msgstr "(Sem assunto)" - -#: html/Admin/Elements/SelectRights:74 html/Elements/EditCustomFieldSelect:71 html/Elements/SelectCustomFieldValue:53 html/Elements/ShowCustomFields:56 html/Search/Chart:134 html/Search/Elements/Chart:78 lib/RT/Transaction_Overlay.pm:612 -msgid "(no value)" -msgstr "(sem valor)" - -#: html/Admin/Elements/EditCustomFieldValues:49 -msgid "(no values)" -msgstr "(sem valores)" - -#: html/Elements/EditLinks:133 html/Ticket/Elements/BulkLinks:51 -msgid "(only one ticket)" -msgstr "(somente um tíquete)" - -#: html/Elements/RT__Ticket/ColumnMap:151 -msgid "(pending approval)" -msgstr "(aprovação pendente)" - -#: html/Elements/RT__Ticket/ColumnMap:154 -msgid "(pending other Collection)" -msgstr "(outra Coleta pendente)" - -#: NOT FOUND IN SOURCE -msgid "(pending other tickets)" -msgstr "(aguardando outros tíquetes)" - -#: NOT FOUND IN SOURCE -msgid "(requestor's group)" -msgstr "(grupo do requisitante)" - -#: html/Admin/Users/Modify.html:73 -msgid "(required)" -msgstr "(requerido)" - -#: html/Ticket/Elements/ShowTransactionAttachments:84 -msgid "(untitled)" -msgstr "(sem título)" - -#: html/Ticket/Elements/Reminders:135 -msgid "(yyyy/mm/dd)" -msgstr "(aaaa/mm/dd)" - -#: html/Elements/EditCustomFieldSelect:59 -msgid "-" -msgstr "" - -#: bin/rt-crontool:97 -msgid "--transaction argument could be only 'first' or 'last'" -msgstr "--argumento da transação só pode ser 'first' (primeiro) ou 'last' (último)" - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I own..." -msgstr "25 tíquetes mais prioritários que possuo..." - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I requested..." -msgstr "25 tíquetes mais prioritários que requisitei..." - -#: html/Ticket/Elements/ShowBasics:55 -msgid "<% $Ticket->Status%>" -msgstr "" - -#: html/Elements/SelectTicketTypes:50 -msgid "<% $_ %>" -msgstr "" - -#: html/Search/Elements/SelectLinks:50 -msgid "<%$_%>" -msgstr "" - -#: html/Search/Elements/DisplayOptions:75 -msgid "<%$field%>" -msgstr "" - -#: html/Elements/CreateTicket:49 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" class=\"button\" value=\"New ticket in\" /> %1" -msgstr "<input type=\"submit\" class=\"button\" value=\"Novo tíquete em\" /> %1" - -#: docs/design_docs/string-extraction-guide.txt:54 lib/RT/StyleGuide.pod:785 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" value=\"New ticket in\"> %1" -msgstr "<input type=\"submit\" value=\"Novo tíquete em\"> %1" - -#: etc/initialdata:218 -msgid "A blank template" -msgstr "Um modelo vazio" - -#: html/Admin/Users/Modify.html:375 -msgid "A password was not set, so user won't be able to login." -msgstr "Não foi definida uma senha, o usuário não estará apto a usar o sistema." - -#: NOT FOUND IN SOURCE -msgid "ACE Deleted" -msgstr "ACE Removida" - -#: NOT FOUND IN SOURCE -msgid "ACE Loaded" -msgstr "ACE Carregada" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be deleted" -msgstr "ACE não pôde ser removida" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be found" -msgstr "ACE não pode ser encontrada" - -#: lib/RT/ACE_Overlay.pm:176 lib/RT/Principal_Overlay.pm:221 -msgid "ACE not found" -msgstr "ACE não encontrado" - -#: lib/RT/ACE_Overlay.pm:855 -msgid "ACEs can only be created and deleted." -msgstr "ACEs só podem ser criados e removidos." - -#: html/Search/Elements/SelectAndOr:48 -msgid "AND" -msgstr "E" - -#: NOT FOUND IN SOURCE -msgid "Aborting to avoid unintended ticket modifications.\\n" -msgstr "Abortando para evitar modificações indesejadas no tíquete.\\n" - -#: html/User/Elements/Tabs:55 -msgid "About me" -msgstr "Sobre mim" - -#: html/Admin/Users/Modify.html:108 -msgid "Access control" -msgstr "Controle de acesso" - -#: html/Admin/Elements/EditScrip:67 -msgid "Action" -msgstr "Ação" - -#: lib/RT/Scrip_Overlay.pm:174 -#. ($args{'ScripAction'}) -msgid "Action %1 not found" -msgstr "Ação %1 não encontrada" - -#: NOT FOUND IN SOURCE -msgid "Action committed." -msgstr "Ação executada." - -#: bin/rt-crontool:173 -msgid "Action committed.\\n" -msgstr "Ação executada.\\n" - -#: lib/RT/Scrip_Overlay.pm:170 -msgid "Action is mandatory argument" -msgstr "Ação é um argumento obrigatório." - -#: bin/rt-crontool:169 -msgid "Action prepared..." -msgstr "Ação preparada..." - -#: html/Search/Build.html:87 -msgid "Add" -msgstr "Adicionar" - -#: html/Search/Bulk.html:94 -msgid "Add AdminCc" -msgstr "Adicionar AdminCc" - -#: html/Search/Bulk.html:90 -msgid "Add Cc" -msgstr "Adicionar Cc" - -#: html/Search/Elements/EditFormat:51 -msgid "Add Columns" -msgstr "Adicionar Colunas" - -#: html/Search/Elements/PickCriteria:48 -msgid "Add Criteria" -msgstr "Adicionar Critério" - -#: html/Ticket/Create.html:149 html/Ticket/Update.html:118 -msgid "Add More Files" -msgstr "Adicionar Mais Arquivos" - -#: NOT FOUND IN SOURCE -msgid "Add Next State" -msgstr "Adicionar Próximo Estado" - -#: html/Search/Bulk.html:86 -msgid "Add Requestor" -msgstr "Adicionar Requisitante" - -#: html/Admin/Elements/AddCustomFieldValue:48 -msgid "Add Value" -msgstr "Adicionar Valor" - -#: NOT FOUND IN SOURCE -msgid "Add a Scrip to this queue" -msgstr "Adicionar um Scrip a esta fila" - -#: NOT FOUND IN SOURCE -msgid "Add a Scrip which will apply to all queues" -msgstr "Adicionar um Scrip que será aplicado a todas as filas" - -#: NOT FOUND IN SOURCE -msgid "Add a keyword selection to this queue" -msgstr "Adicionar uma seleção de teclado a esta fila" - -#: NOT FOUND IN SOURCE -msgid "Add a new a global scrip" -msgstr "Adicionar um novo scrip global" - -#: NOT FOUND IN SOURCE -msgid "Add a scrip to this queue" -msgstr "Adicionar um scrip a esta fila" - -#: html/Admin/Global/Scrip.html:85 -msgid "Add a scrip which will apply to all queues" -msgstr "Adicionar um scrip que se aplicará a todas as filas " - -#: html/Search/Build.html:111 html/Search/Build.html:96 -msgid "Add and Search" -msgstr "Adicionar e Buscar" - -#: html/Search/Bulk.html:126 -msgid "Add comments or replies to selected tickets" -msgstr "Adicionar comentários ou respostas aos tíquetes selecionados" - -#: html/Admin/Groups/Members.html:65 html/User/Groups/Members.html:62 -msgid "Add members" -msgstr "Adicionar membros" - -#: html/Admin/Queues/People.html:89 html/Ticket/Elements/AddWatchers:51 -msgid "Add new watchers" -msgstr "Adicionar novos observadores" - -#: html/Search/Build.html:87 -msgid "Add these terms to your search" -msgstr "Adicionar estes termos à sua busca" - -#: html/Search/Bulk.html:160 -msgid "Add values" -msgstr "Adicionar valores" - -#: lib/RT/CustomField_Overlay.pm:110 -msgid "Add, delete and modify custom field values for objects" -msgstr "Adicionar, remover e modificar valores de campos personalizados para objetos" - -#: NOT FOUND IN SOURCE -msgid "AddNextState" -msgstr "AddNextState" - -#: lib/RT/Queue_Overlay.pm:765 -#. ($args{'Type'}) -msgid "Added principal as a %1 for this queue" -msgstr "Usuário/Grupo adicionado como um %1 desta fila" - -#: lib/RT/Ticket_Overlay.pm:1457 -#. ($self->loc($args{'Type'})) -msgid "Added principal as a %1 for this ticket" -msgstr "Usuário/Grupo adicionado como um %1 deste tíquete" - -#: html/Admin/Users/Modify.html:149 html/User/Prefs.html:135 -msgid "Address1" -msgstr "Endereço 1" - -#: html/Admin/Users/Modify.html:154 html/User/Prefs.html:139 -msgid "Address2" -msgstr "Endereço 2" - -#: html/Ticket/Create.html:100 -msgid "Admin Cc" -msgstr "Admin Cc" - -#: etc/initialdata:295 -msgid "Admin Comment" -msgstr "Comentário do Administrador" - -#: etc/initialdata:274 -msgid "Admin Correspondence" -msgstr "Correspondência do Administrador" - -#: html/Admin/Queues/index.html:48 html/Admin/Queues/index.html:51 -msgid "Admin queues" -msgstr "Administração de filas" - -#: NOT FOUND IN SOURCE -msgid "Admin users" -msgstr "Administração de usuários" - -#: html/Admin/Global/index.html:49 html/Admin/Global/index.html:51 -msgid "Admin/Global configuration" -msgstr "Administração da configuração global" - -#: NOT FOUND IN SOURCE -msgid "Admin/Groups" -msgstr "Administração de Grupos" - -#: NOT FOUND IN SOURCE -msgid "Admin/Queue/Basics" -msgstr "Administração de uma fila" - -#: NOT FOUND IN SOURCE -msgid "AdminAllPersonalGroups" -msgstr "AdminAllPersonalGroups" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:62 lib/RT/ACE_Overlay.pm:115 -msgid "AdminCc" -msgstr "AdminCc" - -#: NOT FOUND IN SOURCE -msgid "AdminComment" -msgstr "ComentarioAdministrador" - -#: NOT FOUND IN SOURCE -msgid "AdminCorrespondence" -msgstr "CorrespondenciaAdministrador" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "AdminCustomField" -msgstr "AdministrarCampoPersonalizado" - -#: NOT FOUND IN SOURCE -msgid "AdminCustomFields" -msgstr "AdministrarCamposPersonalizados" - -#: lib/RT/Group_Overlay.pm:165 -msgid "AdminGroup" -msgstr "AdministrarGrupo" - -#: lib/RT/Group_Overlay.pm:167 -msgid "AdminGroupMembership" -msgstr "AdministrarAfiliacaoGrupop" - -#: lib/RT/System.pm:82 -msgid "AdminOwnPersonalGroups" -msgstr "AdminOwnPersonalGroups" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "AdminQueue" -msgstr "AdministrarFila" - -#: lib/RT/System.pm:83 -msgid "AdminUsers" -msgstr "AdministrarUsuários" - -#: html/Admin/Queues/People.html:71 html/Ticket/Elements/EditPeople:77 -msgid "Administrative Cc" -msgstr "Cc Administrativo" - -#: NOT FOUND IN SOURCE -msgid "Admins" -msgstr "Administradores" - -#: html/Ticket/Elements/Tabs:218 -msgid "Advanced" -msgstr "Avançado" - -#: NOT FOUND IN SOURCE -msgid "Advanced Search" -msgstr "Busca avançada" - -#: html/Elements/SelectDateRelation:59 -msgid "After" -msgstr "Depois de" - -#: NOT FOUND IN SOURCE -msgid "Age" -msgstr "Idade" - -#: html/Search/Elements/PickCriteria:54 -msgid "Aggregator" -msgstr "Agregador" - -#: NOT FOUND IN SOURCE -msgid "Alias for" -msgstr "Aliás para" - -#: etc/initialdata:363 -msgid "All Approvals Passed" -msgstr "Todas as Aprovações Concedidas" - -#: NOT FOUND IN SOURCE -msgid "All Custom Fields" -msgstr "Todos os Campos Personalizados" - -#: html/Admin/Queues/index.html:77 -msgid "All Queues" -msgstr "Todas as filas" - -#: NOT FOUND IN SOURCE -msgid "Always sends a message to the requestors independent of message sender" -msgstr "" -"Sempre envia uma mensagem para os requisitantes independentemente do " -"remetente" - -#: html/Search/Elements/EditQuery:58 -msgid "And/Or" -msgstr "E/Ou" - -#: html/Admin/CustomFields/Modify.html:75 html/Admin/Elements/CustomFieldTabs:85 -msgid "Applies to" -msgstr "Aplica-se a" - -#: html/Search/Edit.html:66 -msgid "Apply" -msgstr "Aplicar" - -#: html/Search/Edit.html:66 -msgid "Apply your changes" -msgstr "Aplicar suas alterações" - -#: html/Elements/Tabs:80 -msgid "Approval" -msgstr "Aprovação" - -#: html/Approvals/Display.html:67 html/Approvals/Elements/ShowDependency:65 html/Approvals/index.html:88 -#. ($ticket->id, $msg) -#. ($Ticket->Id, $Ticket->Subject) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Approval #%1: %2" -msgstr "Aprovação #%1: %2" - -#: html/Approvals/index.html:77 -#. ($ticket->Id) -msgid "Approval #%1: Notes not recorded due to a system error" -msgstr "Aprovação #%1: Anotações não registradas devido a um erro de sistema" - -#: html/Approvals/index.html:75 -#. ($ticket->Id) -msgid "Approval #%1: Notes recorded" -msgstr "Aprovação #%1: Anotações registradas" - -#: NOT FOUND IN SOURCE -msgid "Approval Details" -msgstr "Detalhes da Aprovação" - -#: etc/initialdata:351 -msgid "Approval Passed" -msgstr "Aprovação Concedida" - -#: etc/initialdata:374 -msgid "Approval Rejected" -msgstr "Aprovação Rejeitada" - -#: NOT FOUND IN SOURCE -msgid "Approval diagram" -msgstr "Diagrama da aprovação" - -#: html/Approvals/Elements/Approve:71 -msgid "Approve" -msgstr "Aprove" - -#: etc/initialdata:504 -msgid "Approver's notes: %1" -msgstr "Anotações do aprovador: %1" - -#: lib/RT/Date.pm:446 -msgid "Apr." -msgstr "Abr." - -#: NOT FOUND IN SOURCE -msgid "April" -msgstr "Abril" - -#: html/Search/Elements/DisplayOptions:83 -msgid "Asc" -msgstr "" - -#: html/Elements/SelectSortOrder:58 -msgid "Ascending" -msgstr "Ascendente" - -#: lib/RT/Queue_Overlay.pm:98 -msgid "Assign and remove custom fields" -msgstr "Definir e remover campos personalizados" - -#: lib/RT/Queue_Overlay.pm:98 -msgid "AssignCustomFields" -msgstr "DefinirCamposPersonalizados" - -#: html/Search/Bulk.html:144 html/SelfService/Update.html:89 html/Ticket/ModifyAll.html:117 html/Ticket/Update.html:118 -msgid "Attach" -msgstr "Anexar" - -#: html/SelfService/Create.html:94 html/Ticket/Create.html:145 -msgid "Attach file" -msgstr "Anexar arquivo" - -#: html/SelfService/Update.html:77 html/Ticket/Create.html:133 html/Ticket/Update.html:96 -msgid "Attached file" -msgstr "Arquivo anexado" - -#: html/Ticket/ShowEmailRecord.html:54 html/Ticket/ShowEmailRecord.html:58 html/Ticket/ShowEmailRecord.html:61 -#. ($Attachment) -msgid "Attachment '%1' could not be loaded" -msgstr "Arquivo anexo '%1' não pôde ser carregado" - -#: lib/RT/Transaction_Overlay.pm:510 -msgid "Attachment created" -msgstr "Arquivo anexo criado" - -#: lib/RT/Tickets_Overlay.pm:2061 -msgid "Attachment filename" -msgstr "Nome do arquivo anexo" - -#: html/Ticket/Elements/ShowAttachments:49 -msgid "Attachments" -msgstr "Arquivos anexos" - -#: lib/RT/Attributes_Overlay.pm:173 -msgid "Attribute Deleted" -msgstr "Atributo Removido" - -#: lib/RT/Date.pm:450 -msgid "Aug." -msgstr "Ago." - -#: NOT FOUND IN SOURCE -msgid "August" -msgstr "Agosto" - -#: NOT FOUND IN SOURCE -msgid "AuthSystem" -msgstr "Sistema de autenticação" - -#: etc/initialdata:221 -msgid "Autoreply" -msgstr "RespostaAutomatica" - -#: etc/initialdata:72 -msgid "Autoreply To Requestors" -msgstr "Responder Automaticamente para Requisitantes" - -#: NOT FOUND IN SOURCE -msgid "AutoreplyToRequestors" -msgstr "AutoreplyToRequestors" - -#: html/Widgets/SelectionBox:191 -msgid "Available" -msgstr "Disponível" - -#: NOT FOUND IN SOURCE -msgid "Bad PGP Signature: %1\\n" -msgstr "Assinatura PGP inválida: %1\\n" - -#: NOT FOUND IN SOURCE -msgid "Bad attachment id. Couldn't find attachment '%1'\\n" -msgstr "" -"Identificador de arquivo anexo inválido. Não foi possível encontrar o arquivo '%" -"1'\\n" - -#: NOT FOUND IN SOURCE -msgid "Bad data in %1" -msgstr "Dados inválidos em %1" - -#: NOT FOUND IN SOURCE -msgid "Bad transaction number for attachment. %1 should be %2\\n" -msgstr "Número inválido de transação para o arquivo anexo. %1 deveria ser %2\\n" - -#: html/Admin/Elements/CustomFieldTabs:67 html/Admin/Elements/GroupTabs:62 html/Admin/Elements/QueueTabs:62 html/Admin/Elements/UserTabs:60 html/Ticket/Elements/Tabs:115 html/User/Elements/GroupTabs:61 -msgid "Basics" -msgstr "Básicos" - -#: html/Ticket/Update.html:90 -msgid "Bcc" -msgstr "Bcc" - -#: html/Admin/CustomFields/GroupRights.html:93 html/Admin/CustomFields/UserRights.html:76 html/Admin/Elements/EditScrip:91 -msgid "Be sure to save your changes" -msgstr "Não se esqueça de salvar suas alterações" - -#: html/Elements/SelectDateRelation:57 lib/RT/CurrentUser.pm:363 -msgid "Before" -msgstr "Antes de" - -#: NOT FOUND IN SOURCE -msgid "Begin Approval" -msgstr "Incício da Aprovação" - -#: html/Elements/Logo:49 -msgid "Best Practical Solutions, LLC corporate logo" -msgstr "" - -#: etc/initialdata:217 -msgid "Blank" -msgstr "Vazio" - -#: html/Search/Elements/EditFormat:86 -msgid "Bold" -msgstr "Negrito" - -#: NOT FOUND IN SOURCE -msgid "Bookmarkable URL for this search" -msgstr "URL para guardar esta busca em Favoritos" - -#: html/Search/Results.html:81 -msgid "Bookmarkable link" -msgstr "Atalho para Favoritos" - -#: html/Ticket/Elements/ShowHistory:66 html/Ticket/Elements/ShowHistory:71 -msgid "Brief headers" -msgstr "Cabeçalhos resumidos" - -#: html/Ticket/Elements/Tabs:228 -msgid "Bulk Update" -msgstr "Atualização em Massa" - -#: NOT FOUND IN SOURCE -msgid "Bulk ticket update" -msgstr "Atualização de tíquetes em lote" - -#: lib/RT/User_Overlay.pm:1855 -msgid "Can not modify system users" -msgstr "Não é possível modificar os usuários do sistema" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "Can this principal see this queue" -msgstr "Este Usuário/Grupo pode ver esta fila" - -#: lib/RT/CustomField_Overlay.pm:382 -msgid "Can't add a custom field value without a name" -msgstr "Não é possível adicionar um valor de campo personalizado sem um nome" - -#: html/Admin/CustomFields/Objects.html:88 -#. ($Class) -msgid "Can't find a collection class for '%1'" -msgstr "Não foi encontrada uma classe de coleta para '%1'" - -#: html/Search/Build.html:288 -msgid "Can't find a saved search to work with" -msgstr "Não foi encontrada uma busca salva para ser trabalhada" - -#: lib/RT/Link_Overlay.pm:161 -msgid "Can't link a ticket to itself" -msgstr "Não é possível vincular um tíquete a ele mesmo" - -#: NOT FOUND IN SOURCE -msgid "Can't merge into a merged ticket. You should never get this error" -msgstr "Não é possível unir a um tíquete já unido. Você nunca deve obter este erro" - -#: html/Widgets/SavedSearch:110 -#. (loc($self->{SearchType})) -msgid "Can't save %1" -msgstr "Não é possível salvar %1" - -#: html/Search/Build.html:292 -msgid "Can't save this search" -msgstr "Não é possível salvar esta busca" - -#: lib/RT/Record.pm:1304 lib/RT/Record.pm:1380 -msgid "Can't specifiy both base and target" -msgstr "Não especifique origem e destino simultaneamente" - -#: html/autohandler:206 -#. ($msg) -msgid "Cannot create user: %1" -msgstr "Não é possível criar o usuário: %1" - -#: html/Admin/Elements/AddCustomFieldValue:64 html/Admin/Elements/EditCustomFieldValues:60 -msgid "Category" -msgstr "Categoria" - -#: etc/initialdata:50 html/Admin/Queues/People.html:67 html/SelfService/Create.html:73 html/Ticket/Create.html:90 html/Ticket/Elements/EditPeople:74 html/Ticket/Elements/ShowPeople:58 html/Ticket/Update.html:85 lib/RT/ACE_Overlay.pm:114 -msgid "Cc" -msgstr "" - -#: html/SelfService/Prefs.html:54 -msgid "Change password" -msgstr "Mudar a senha" - -#: html/Elements/Submit:80 -msgid "Check All" -msgstr "Marcar Tudo" - -#: html/SelfService/Update.html:80 html/Ticket/Create.html:136 html/Ticket/Update.html:99 -msgid "Check box to delete" -msgstr "Marcar caixa para remover" - -#: html/Admin/Elements/SelectRights:57 -msgid "Check box to revoke right" -msgstr "Marcar caixa para revogar o direito de acesso" - -#: html/Elements/EditLinks:149 html/Elements/EditLinks:86 html/Elements/ShowLinks:80 html/Ticket/Create.html:225 html/Ticket/Elements/BulkLinks:66 -msgid "Children" -msgstr "Filhos" - -#: html/NoAuth/js/util.js:203 -msgid "Choose a date" -msgstr "Escolher uma data" - -#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:143 -msgid "City" -msgstr "Cidade" - -#: html/Widgets/SelectionBox:214 -msgid "Clear" -msgstr "Limpar" - -#: html/Elements/Submit:82 -msgid "Clear All" -msgstr "Limpar Tudo" - -#: html/Helpers/CalPopup.html:53 -msgid "Close window" -msgstr "Fechar janela" - -#: html/Ticket/Elements/ShowDates:70 -msgid "Closed" -msgstr "Fechado" - -#: NOT FOUND IN SOURCE -msgid "Closed requests" -msgstr "Requisições fechadas" - -#: html/SelfService/Closed.html:48 html/SelfService/Elements/Tabs:81 -msgid "Closed tickets" -msgstr "Tíquetes fechados" - -#: NOT FOUND IN SOURCE -msgid "Code" -msgstr "Código" - -#: lib/RT/CustomField_Overlay.pm:91 -msgid "Combobox: Select or enter multiple values" -msgstr "CaixaCombinada: Selecionar on informar múltiplos valores" - -#: lib/RT/CustomField_Overlay.pm:92 -msgid "Combobox: Select or enter one value" -msgstr "CaixaCombinada: Selecionar ou informar um valor" - -#: lib/RT/CustomField_Overlay.pm:93 -msgid "Combobox: Select or enter up to %1 values" -msgstr "CaixaCombinada: Selecionar ou informar até %1 valores" - -#: NOT FOUND IN SOURCE -msgid "Command not understood!\\n" -msgstr "Comando não entendido!\\n" - -#: html/Ticket/Elements/ShowTransaction:190 html/Ticket/Elements/Tabs:187 -msgid "Comment" -msgstr "Comentar" - -#: html/Admin/Queues/Modify.html:81 -msgid "Comment Address" -msgstr "Endereço de Comentário" - -#: NOT FOUND IN SOURCE -msgid "Comment not recorded" -msgstr "Comentário não registrado" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "Comment on tickets" -msgstr "Comente sobre os tíquetes" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "CommentOnTicket" -msgstr "CommetarioNoTiquete" - -#: html/Tools/MyDay.html:67 -msgid "Comments" -msgstr "Comentários" - -#: html/Ticket/ModifyAll.html:93 html/Ticket/Update.html:77 -msgid "Comments (Not sent to requestors)" -msgstr "Comentários (não enviados aos requisitantes)" - -#: html/Search/Bulk.html:130 -msgid "Comments (not sent to requestors)" -msgstr "Comentários (não enviados aos requisitantes)" - -#: NOT FOUND IN SOURCE -msgid "Comments about %1" -msgstr "Comentários sobre %1" - -#: html/Admin/Users/Modify.html:229 html/Ticket/Elements/ShowRequestor:69 -msgid "Comments about this user" -msgstr "Comentários sobre este usuário" - -#: lib/RT/Transaction_Overlay.pm:655 -msgid "Comments added" -msgstr "Comentários adicionados" - -#: lib/RT/Action/Generic.pm:177 -msgid "Commit Stubbed" -msgstr "Execução Abortada" - -#: NOT FOUND IN SOURCE -msgid "Compile Restrictions" -msgstr "Compilar restrições" - -#: html/Admin/Elements/EditScrip:61 -msgid "Condition" -msgstr "Condição" - -#: lib/RT/Scrip_Overlay.pm:186 -msgid "Condition is mandatory argument" -msgstr "Condição é um argumento obrigatório" - -#: bin/rt-crontool:153 -msgid "Condition matches..." -msgstr "Condição satisfeita..." - -#: lib/RT/Scrip_Overlay.pm:190 -msgid "Condition not found" -msgstr "Condição não encontrada" - -#: html/Elements/Tabs:87 -msgid "Configuration" -msgstr "Configuração" - -#: html/SelfService/Prefs.html:56 -msgid "Confirm" -msgstr "Confirmar" - -#: NOT FOUND IN SOURCE -msgid "ContactInfoSystem" -msgstr "Informação de contato" - -#: NOT FOUND IN SOURCE -msgid "Contacted date '%1' could not be parsed" -msgstr "Data de contato '%1' não pôde ser entendida" - -#: html/Admin/Elements/ModifyTemplate:67 html/Elements/SelectAttachmentField:50 html/Ticket/ModifyAll.html:121 -msgid "Content" -msgstr "Conteúdo" - -#: html/Elements/SelectAttachmentField:51 -msgid "Content-Type" -msgstr "Tipo-de-Conteúdo" - -#: NOT FOUND IN SOURCE -msgid "Coould not create group" -msgstr "Não foi possível criar o grupo" - -#: html/Search/Elements/EditSearches:67 -msgid "Copy" -msgstr "Copiar" - -#: etc/initialdata:286 -msgid "Correspondence" -msgstr "Correspondência" - -#: NOT FOUND IN SOURCE -msgid "Correspondence Address" -msgstr "Endereço de correspondência" - -#: lib/RT/Transaction_Overlay.pm:651 -msgid "Correspondence added" -msgstr "Correspondência adicionada" - -#: NOT FOUND IN SOURCE -msgid "Correspondence not recorded" -msgstr "Correspondência não registrada" - -#: NOT FOUND IN SOURCE -msgid "Could not add new custom field value for ticket. " -msgstr "Não foi possível adicionar novo valor de campo personalizado para o tíquete. " - -#: NOT FOUND IN SOURCE -msgid "Could not add new custom field value for ticket. %1 " -msgstr "Não foi possível adicionar novo valor de campo personalizado para o tíquete. %1" - -#: NOT FOUND IN SOURCE -msgid "Could not add new custom field value. " -msgstr "Não foi possível adicionar novo valor do campo personalizado." - -#: NOT FOUND IN SOURCE -msgid "Could not add new custom field value. %1 " -msgstr "Não foi possível adicionar novo valor do campo personalizado. %1" - -#: lib/RT/Record.pm:1682 lib/RT/Record.pm:1729 -#. ($value_msg) -msgid "Could not add new custom field value: %1" -msgstr "Não foi possível adicionar novo valor do campo personalizado: %1" - -#: lib/RT/Ticket_Overlay.pm:3071 lib/RT/Ticket_Overlay.pm:3079 lib/RT/Ticket_Overlay.pm:3096 -msgid "Could not change owner. " -msgstr "Não foi possível mudar o proprietário. " - -#: html/Admin/CustomFields/Modify.html:163 -#. ($msg) -msgid "Could not create CustomField" -msgstr "Não foi possível criar CampoPersonalizado" - -#: html/Admin/Elements/EditCustomField:115 -#. ($msg) -msgid "Could not create CustomField: %1" -msgstr "Não foi possível criar CampoPersonalizado: %1" - -#: html/User/Groups/Modify.html:100 lib/RT/Group_Overlay.pm:496 lib/RT/Group_Overlay.pm:503 -msgid "Could not create group" -msgstr "Não foi possível criar o grupo" - -#: html/Admin/Global/Template.html:98 html/Admin/Queues/Template.html:95 -#. ($msg) -msgid "Could not create template: %1" -msgstr "Não foi possível criar o modelo: %1" - -#: lib/RT/Ticket_Overlay.pm:1077 lib/RT/Ticket_Overlay.pm:409 -msgid "Could not create ticket. Queue not set" -msgstr "Não foi possível criar o tíquete. Fila não definida" - -#: lib/RT/User_Overlay.pm:257 lib/RT/User_Overlay.pm:271 lib/RT/User_Overlay.pm:280 lib/RT/User_Overlay.pm:289 lib/RT/User_Overlay.pm:298 lib/RT/User_Overlay.pm:312 lib/RT/User_Overlay.pm:322 lib/RT/User_Overlay.pm:498 -msgid "Could not create user" -msgstr "Não foi possível criar o usuário" - -#: NOT FOUND IN SOURCE -msgid "Could not create watcher for requestor" -msgstr "Não foi possível criar um observador para o requisitante" - -#: NOT FOUND IN SOURCE -msgid "Could not find a ticket with id %1" -msgstr "Não foi possível encontrar um tíquete com identificador %1" - -#: NOT FOUND IN SOURCE -msgid "Could not find group %1." -msgstr "Não foi possível encontrar o grupo %1." - -#: lib/RT/Queue_Overlay.pm:743 lib/RT/Ticket_Overlay.pm:1425 -msgid "Could not find or create that user" -msgstr "Não foi possível encontrar ou criar este usuário" - -#: lib/RT/Queue_Overlay.pm:804 lib/RT/Ticket_Overlay.pm:1506 -msgid "Could not find that principal" -msgstr "Não foi possível encontrar este usuário/grupo" - -#: NOT FOUND IN SOURCE -msgid "Could not find user %1." -msgstr "Não foi possível encontrar o usuário %1." - -#: html/Admin/CustomFields/Objects.html:71 -msgid "Could not load CustomField %1" -msgstr "Não foi possível caarregar CampoPersonalizado %1" - -#: html/Admin/Groups/Members.html:114 html/User/Groups/Members.html:113 html/User/Groups/Modify.html:105 -msgid "Could not load group" -msgstr "Não foi possível carregar o grupo" - -#: lib/RT/SavedSearch.pm:121 -#. ($privacy) -msgid "Could not load object for %1" -msgstr "Não foi possível carregar objeto para %1" - -#: lib/RT/SavedSearch.pm:199 -msgid "Could not load search attribute" -msgstr "Não foi possível carregar atributo de busca" - -#: lib/RT/Queue_Overlay.pm:763 -#. ($args{'Type'}) -msgid "Could not make that principal a %1 for this queue" -msgstr "Não foi possível fazer deste usuário/grupo um %1 desta fila" - -#: lib/RT/Ticket_Overlay.pm:1446 -#. ($self->loc($args{'Type'})) -msgid "Could not make that principal a %1 for this ticket" -msgstr "Não foi possível fazer deste usuário/grupo um %1 deste tíquete" - -#: lib/RT/Queue_Overlay.pm:862 -#. ($args{'Type'}) -msgid "Could not remove that principal as a %1 for this queue" -msgstr "Não foi possível remover este usuário/grupo como um %1 desta fila" - -#: NOT FOUND IN SOURCE -msgid "Could not remove that principal as a %1 for this ticket" -msgstr "Não foi possível remover este usuário/grupo como um %1 deste tíquete" - -#: lib/RT/User_Overlay.pm:193 -msgid "Could not set user info" -msgstr "Não foi possível definir informações sobre usuário" - -#: lib/RT/Transaction_Overlay.pm:161 -msgid "Couldn't add attachment" -msgstr "Não foi possível adicionar anexo" - -#: lib/RT/Group_Overlay.pm:1005 -msgid "Couldn't add member to group" -msgstr "Não foi possível adicionar o membro ao grupo" - -#: lib/RT/Record.pm:1741 lib/RT/Record.pm:1793 -#. ($Msg) -msgid "Couldn't create a transaction: %1" -msgstr "Não foi possível criar uma transação: %1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't figure out what to do from gpg's reply\\n" -msgstr "Não sei o que fazer com a resposta do gpg\\n" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find group\\n" -msgstr "Não encontrei o grupo\\n" - -#: lib/RT/Record.pm:970 -msgid "Couldn't find row" -msgstr "Não foi possível encontrar o registro" - -#: lib/RT/Group_Overlay.pm:979 -msgid "Couldn't find that principal" -msgstr "Não foi possível encontrar este usuário/grupo" - -#: lib/RT/CustomField_Overlay.pm:412 -msgid "Couldn't find that value" -msgstr "Não foi possível encontrar este valor" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find that watcher" -msgstr "Não foi possível encontrar este observador" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find user\\n" -msgstr "Não foi possível encontrar o usuário\\n" - -#: lib/RT/CurrentUser.pm:147 -#. ($self->Id) -msgid "Couldn't load %1 from the users database.\\n" -msgstr "Não foi possível carregar %1 do banco de dados de usuários.\\n" - -#: html/Admin/CustomFields/UserRights.html:151 -#. ($id) -msgid "Couldn't load Class %1" -msgstr "Não foi possível carregar Classe %1" - -#: html/Admin/CustomFields/GroupRights.html:109 -#. ($id) -msgid "Couldn't load CustomField %1" -msgstr "Não foi possível carregar CampoPersonalizado %1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load KeywordSelects." -msgstr "Não foi possível carregar os KeywordSelects." - -#: NOT FOUND IN SOURCE -msgid "Couldn't load RT config file '%1' %2" -msgstr "Não foi possível carregar o arquivo de configuração do RT '%1' %2" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load Scrips." -msgstr "Não foi possível carregar os Scrips." - -#: lib/RT/Ticket_Overlay.pm:2018 -#. ($self->Id) -msgid "Couldn't load copy of ticket #%1." -msgstr "Não foi possível carregar cópia do tíquete #%1." - -#: html/Admin/Groups/GroupRights.html:111 html/Admin/Groups/UserRights.html:98 -#. ($id) -msgid "Couldn't load group %1" -msgstr "Não foi possível carregar o grupo %1" - -#: lib/RT/Link_Overlay.pm:204 lib/RT/Link_Overlay.pm:213 lib/RT/Link_Overlay.pm:240 -msgid "Couldn't load link" -msgstr "Não foi possível carregar o vínculo" - -#: html/Admin/Elements/ObjectCustomFields:85 html/Admin/Queues/CustomFields.html:61 html/Admin/Users/CustomFields.html:61 -#. ($id) -msgid "Couldn't load object %1" -msgstr "Não foi possível carregar objeto %1" - -#: html/Admin/Queues/People.html:144 -#. ($id) -msgid "Couldn't load queue" -msgstr "Não foi possível carregar a fila" - -# -#: html/Admin/Queues/GroupRights.html:124 html/Admin/Queues/UserRights.html:95 -#. ($id) -msgid "Couldn't load queue %1" -msgstr "Não foi possível carregar a fila %1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load scrip" -msgstr "Não foi possível carregar o scrip" - -#: html/Admin/Elements/EditScrip:128 html/Admin/Elements/EditScrip:169 -#. ($id) -msgid "Couldn't load scrip #%1" -msgstr "Não foi possível carregar scrip #%1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load template" -msgstr "Não foi possível carregar o modelo" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load that user (%1)" -msgstr "Não foi possível carregar este usuário (%1)" - -# -#: html/SelfService/Display.html:160 lib/RT/Action/CreateTickets.pm:682 -#. ($id) -msgid "Couldn't load ticket '%1'" -msgstr "Não foi possível carregar o tíquete '%1'" - -#: lib/RT/Ticket_Overlay.pm:2646 -#. ($args{'URI'}) -msgid "Couldn't resolve '%1' into a URI." -msgstr "Não foi possível resolver '%1' dentro de uma URI." - -#: html/Admin/Users/Modify.html:176 html/User/Prefs.html:155 -msgid "Country" -msgstr "País" - -#: html/Admin/Elements/CreateUserCalled:49 html/Admin/Elements/EditCustomField:86 html/Admin/Elements/EditScrip:135 html/Admin/Queues/Template.html:68 html/Elements/QuickCreate:67 html/Ticket/Create.html:170 html/Ticket/Create.html:237 -msgid "Create" -msgstr "Criar" - -#: etc/initialdata:135 -msgid "Create Tickets" -msgstr "Criar Tíquetes" - -#: html/Admin/CustomFields/Modify.html:152 html/Admin/Elements/EditCustomField:98 -msgid "Create a CustomField" -msgstr "Criar um CampoPersonalizado" - -#: html/Admin/Queues/CustomField.html:71 -#. ($QueueObj->Name()) -msgid "Create a CustomField for queue %1" -msgstr "Criar um Campo Personalizado para a fila %1" - -#: NOT FOUND IN SOURCE -msgid "Create a CustomField that applies to all queues" -msgstr "Criar um Campo Personalizado para todas as filas" - -#: NOT FOUND IN SOURCE -msgid "Create a new Custom Field" -msgstr "Criar um novo Campo Personalizado" - -#: NOT FOUND IN SOURCE -msgid "Create a new global Scrip" -msgstr "Criar um novo Scrip global" - -#: NOT FOUND IN SOURCE -msgid "Create a new global scrip" -msgstr "Criar um novo scrip global" - -#: html/Admin/Groups/Modify.html:105 html/Admin/Groups/Modify.html:131 -msgid "Create a new group" -msgstr "Criar um novo grupo" - -#: html/User/Groups/Modify.html:115 html/User/Groups/Modify.html:90 -msgid "Create a new personal group" -msgstr "Criar um novo grupo pessoal" - -#: NOT FOUND IN SOURCE -msgid "Create a new queue" -msgstr "Criar uma nova fila" - -#: NOT FOUND IN SOURCE -msgid "Create a new scrip" -msgstr "Criar um novo scrip" - -#: NOT FOUND IN SOURCE -msgid "Create a new template" -msgstr "Criar um novo modelo" - -#: html/Ticket/Create.html:49 html/Ticket/Create.html:53 html/Ticket/Create.html:62 -msgid "Create a new ticket" -msgstr "Criar um novo tíquete" - -#: html/Admin/Users/Modify.html:256 html/Admin/Users/Modify.html:318 -msgid "Create a new user" -msgstr "Criar um novo usuário" - -#: html/Admin/Queues/Modify.html:127 -msgid "Create a queue" -msgstr "Criar uma fila" - -#: NOT FOUND IN SOURCE -msgid "Create a queue called" -msgstr "Criar uma fila chamada" - -#: NOT FOUND IN SOURCE -msgid "Create a request" -msgstr "Criar uma requisição" - -#: html/Admin/Queues/Scrip.html:91 -#. ($QueueObj->Name) -msgid "Create a scrip for queue %1" -msgstr "Criar um scrip para a fila %1" - -#: html/Admin/Global/Template.html:92 html/Admin/Queues/Template.html:88 -msgid "Create a template" -msgstr "Criar um modelo" - -#: html/SelfService/Create.html:48 html/SelfService/CreateTicketInQueue.html:48 -msgid "Create a ticket" -msgstr "Criar um tíquete" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1 / %2 / %3 " -msgstr "Criação falhou: %1 / %2 / %3 " - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1/%2/%3" -msgstr "Criação falhou: %1/%2/%3" - -# -#: etc/initialdata:137 -msgid "Create new tickets based on this scrip's template" -msgstr "Criar novos tíquetes baseados no modelo deste scrip" - -#: html/SelfService/Create.html:107 -msgid "Create ticket" -msgstr "Criar um tíquete" - -#: lib/RT/Queue_Overlay.pm:111 -msgid "Create tickets in this queue" -msgstr "Criar tíquetes nesta fila" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "Create, delete and modify custom fields" -msgstr "Criar, remover e modificar campos personalizados" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "Create, delete and modify queues" -msgstr "Criar, remover e modificar filas" - -#: NOT FOUND IN SOURCE -msgid "Create, delete and modify the members of any user's personal groups" -msgstr "Criar, remover e modificar os membros dos grupos pessoais de qualquer usuário" - -#: lib/RT/System.pm:82 -msgid "Create, delete and modify the members of personal groups" -msgstr "Criar, remover e modificar os membros de grupos pessoais" - -#: lib/RT/System.pm:83 -msgid "Create, delete and modify users" -msgstr "Criar, remover e modificar usuários" - -#: lib/RT/System.pm:89 -msgid "CreateSavedSearch" -msgstr "CriarBuscaSalva" - -# -#: lib/RT/Queue_Overlay.pm:111 -msgid "CreateTicket" -msgstr "CriarTiquete" - -#: html/Elements/SelectDateType:49 html/Ticket/Elements/ShowDates:50 lib/RT/Ticket_Overlay.pm:1171 -msgid "Created" -msgstr "Criado" - -#: html/Admin/CustomFields/Modify.html:165 html/Admin/Elements/EditCustomField:119 -#. ($CustomFieldObj->Name()) -msgid "Created CustomField %1" -msgstr "CampoPersonalizado %1 criado" - -#: html/Tools/Reports/Elements/Tabs:65 -msgid "Created in a date range" -msgstr "Criados em um intervalo de datas" - -#: NOT FOUND IN SOURCE -msgid "Created template %1" -msgstr "Modelo %1 criado" - -#: html/Tools/Reports/CreatedByDates.html:54 -msgid "Created tickets in period, grouped by status" -msgstr "Tíquetes criados no período, agrupados por estado" - -#: html/Search/Elements/PickBasics:104 -msgid "Creator" -msgstr "Criador" - -#: html/Elements/EditLinks:51 -msgid "Current Links" -msgstr "Relações atuais" - -# -#: html/Admin/Elements/EditScrips:53 -msgid "Current Scrips" -msgstr "Scrips Atuais" - -#: html/Admin/Groups/Members.html:62 html/User/Groups/Members.html:65 -msgid "Current members" -msgstr "Membros atuais" - -#: html/Admin/Elements/SelectRights:53 -msgid "Current rights" -msgstr "Direitos de acesso atuais" - -#: html/Search/Elements/EditQuery:49 -msgid "Current search" -msgstr "Busca atual" - -#: NOT FOUND IN SOURCE -msgid "Current search criteria" -msgstr "Critério de busca atual" - -#: html/Admin/Queues/People.html:64 html/Ticket/Elements/EditPeople:68 -msgid "Current watchers" -msgstr "Observadores atuais" - -#: NOT FOUND IN SOURCE -msgid "Custom Field #%1" -msgstr "Campo Personalizado #%1" - -#: html/Admin/Elements/SystemTabs:63 html/Admin/Elements/Tabs:64 html/Admin/Global/index.html:73 html/Admin/Users/Modify.html:209 html/Admin/index.html:79 html/Ticket/Elements/ShowSummary:58 -msgid "Custom Fields" -msgstr "Campos Personalizados" - -#: html/Admin/CustomFields/index.html:62 -#. ($lookup) -msgid "Custom Fields for %1" -msgstr "Campos Personalizados para %1" - -# -#: html/Admin/Elements/EditScrip:109 -msgid "Custom action cleanup code" -msgstr "Código de finalização de ação personalizada" - -# -#: html/Admin/Elements/EditScrip:105 -msgid "Custom action preparation code" -msgstr "Código de preparação de ação personalizada" - -# -#: html/Admin/Elements/EditScrip:101 -msgid "Custom condition" -msgstr "Condição personalizada" - -#: NOT FOUND IN SOURCE -msgid "Custom field %1 %2 %3" -msgstr "Campo personalizado %1 %2 %3" - -# -#: lib/RT/Tickets_Overlay.pm:2540 -#. ($CF->Name) -msgid "Custom field %1 has a value." -msgstr "Campo personalizado %1 tem um valor." - -# -#: lib/RT/Tickets_Overlay.pm:2536 -#. ($CF->Name) -msgid "Custom field %1 has no value." -msgstr "Campo personalizado %1 não tem valor." - -#: lib/RT/Record.pm:1614 lib/RT/Record.pm:1776 -#. ($args{'Field'}) -msgid "Custom field %1 not found" -msgstr "Campo personalizado %1 não encontrado" - -#: lib/RT/Report/Tickets.pm:120 lib/RT/Report/Tickets.pm:123 -#. ($cf) -#. ($obj->Name) -msgid "Custom field '%1'" -msgstr "Campo prsonalizado '%1'" - -#: NOT FOUND IN SOURCE -msgid "Custom field deleted" -msgstr "Campo personalizado removido" - -#: NOT FOUND IN SOURCE -msgid "Custom field not found" -msgstr "Campo personalizado não encontrado" - -#: lib/RT/CustomField_Overlay.pm:1160 -#. ($args{'Content'}, $self->Name) -msgid "Custom field value %1 could not be found for custom field %2" -msgstr "Valor de campo %1 não pôde ser encontrado para campo personalizado %2" - -#: NOT FOUND IN SOURCE -msgid "Custom field value changed from %1 to %2" -msgstr "O valor do campo personalizado foi mudado de %1 para %2" - -#: lib/RT/CustomField_Overlay.pm:422 -msgid "Custom field value could not be deleted" -msgstr "Valor do campo personalizado não pôde ser removido" - -#: lib/RT/CustomField_Overlay.pm:1172 -msgid "Custom field value could not be found" -msgstr "Valor de campo personalizado não pôde ser encontrado" - -#: lib/RT/CustomField_Overlay.pm:1174 lib/RT/CustomField_Overlay.pm:420 -msgid "Custom field value deleted" -msgstr "Valor do campo personalizado removido" - -#: html/Elements/SelectGroups:53 html/Elements/SelectUsers:53 lib/RT/Transaction_Overlay.pm:659 -msgid "CustomField" -msgstr "CampoPersonalizado" - -#: html/Prefs/MyRT.html:80 html/Prefs/Quicksearch.html:72 html/Prefs/Search.html:77 -msgid "Customize" -msgstr "Personalizar" - -#: NOT FOUND IN SOURCE -msgid "Data error" -msgstr "Erro de dado" - -#: html/SelfService/Display.html:63 html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:91 html/Ticket/Elements/Tabs:118 html/Ticket/ModifyAll.html:67 -msgid "Dates" -msgstr "Datas" - -#: lib/RT/Date.pm:454 -msgid "Dec." -msgstr "Dez." - -#: NOT FOUND IN SOURCE -msgid "December" -msgstr "Dezembro" - -#: NOT FOUND IN SOURCE -msgid "Default Autoresponse Template" -msgstr "Modelo Padrão de RespostaAutomatica" - -#: etc/initialdata:222 -msgid "Default Autoresponse template" -msgstr "Modelo Padrão de RespostaAutomatica" - -#: html/Tools/Offline.html:63 -msgid "Default Queue" -msgstr "Fila Padrão" - -#: html/Tools/Offline.html:72 -msgid "Default Requestor" -msgstr "Requisitante Padrão" - -#: etc/initialdata:296 -msgid "Default admin comment template" -msgstr "Modelo padrão de comentário administrativo" - -#: etc/initialdata:275 -msgid "Default admin correspondence template" -msgstr "Modelo padrão de correspondência administrativa" - -#: etc/initialdata:287 -msgid "Default correspondence template" -msgstr "Modelo padrão de correspondência" - -#: etc/initialdata:253 -msgid "Default transaction template" -msgstr "Modelo padrão de transação" - -#: NOT FOUND IN SOURCE -msgid "Default: %1/%2 changed from %3 to %4" -msgstr "Padrão: %1/%2 mudou de %3 para %4" - -#: html/User/Delegation.html:48 html/User/Delegation.html:51 -msgid "Delegate rights" -msgstr "Delegar direitos de acesso" - -#: lib/RT/System.pm:86 -msgid "Delegate specific rights which have been granted to you." -msgstr "Delegar direitos específicos que foram outorgados a você." - -#: lib/RT/System.pm:86 -msgid "DelegateRights" -msgstr "DelegateRights" - -#: html/User/Elements/Tabs:61 -msgid "Delegation" -msgstr "Delegação" - -#: html/Admin/Elements/EditScrips:77 html/Search/Elements/EditFormat:105 html/Search/Elements/EditQuery:59 html/Search/Elements/EditSearches:65 html/Widgets/SelectionBox:212 -msgid "Delete" -msgstr "Remover" - -#: html/Admin/Elements/EditTemplates:81 -msgid "Delete Template" -msgstr "Remover Modelo" - -#: lib/RT/SavedSearch.pm:222 -#. ($msg) -msgid "Delete failed: %1" -msgstr "Remoção falhou: %1" - -#: html/Admin/Elements/EditScrips:76 -msgid "Delete selected scrips" -msgstr "Remover scrips selecionados" - -#: lib/RT/Queue_Overlay.pm:116 -msgid "Delete tickets" -msgstr "Remover tíquetes" - -#: html/Search/Bulk.html:161 -msgid "Delete values" -msgstr "Remover valores" - -#: lib/RT/Queue_Overlay.pm:116 -msgid "DeleteTicket" -msgstr "DeleteTicket" - -#: lib/RT/SavedSearch.pm:220 -msgid "Deleted search" -msgstr "Busca removida" - -#: NOT FOUND IN SOURCE -msgid "Deleting this object could break referential integrity" -msgstr "Ao remover este objeto você pode quebrar a integridade referencial" - -#: lib/RT/Queue_Overlay.pm:396 -msgid "Deleting this object would break referential integrity" -msgstr "A remoção deste objeto quebra a integridade referencial" - -#: lib/RT/User_Overlay.pm:514 -msgid "Deleting this object would violate referential integrity" -msgstr "A remoção deste objeto viola a integridade referencial" - -#: NOT FOUND IN SOURCE -msgid "Deleting this object would violate referential integrity." -msgstr "Remover este objeto violaria a integridade referencial" - -#: NOT FOUND IN SOURCE -msgid "Deleting this object would violate referential integrity. That's bad." -msgstr "Remover este objeto violaria a integridade referencial. Isto é mau." - -#: html/Approvals/Elements/Approve:75 -msgid "Deny" -msgstr "Negar" - -#: html/Elements/EditLinks:141 html/Elements/EditLinks:68 html/Elements/ShowLinks:60 html/Ticket/Create.html:223 html/Ticket/Elements/BulkLinks:58 html/Ticket/Elements/ShowDependencies:55 -msgid "Depended on by" -msgstr "Dependem deste tíquete" - -#: NOT FOUND IN SOURCE -msgid "Dependencies: \\n" -msgstr "Dependências: \\n" - -#: lib/RT/Transaction_Overlay.pm:739 -#. ($value) -msgid "Dependency by %1 added" -msgstr "Dependência por %1 adicionada" - -#: lib/RT/Transaction_Overlay.pm:779 -#. ($value) -msgid "Dependency by %1 deleted" -msgstr "Dependência por %1 removida" - -#: lib/RT/Transaction_Overlay.pm:736 -#. ($value) -msgid "Dependency on %1 added" -msgstr "Dependência de %1 adicionada" - -#: lib/RT/Transaction_Overlay.pm:776 -#. ($value) -msgid "Dependency on %1 deleted" -msgstr "Dependência de %1 removida" - -#: html/Elements/EditLinks:137 html/Elements/EditLinks:59 html/Elements/SelectLinkType:50 html/Elements/ShowLinks:50 html/Ticket/Create.html:222 html/Ticket/Elements/BulkLinks:54 html/Ticket/Elements/ShowDependencies:48 -msgid "Depends on" -msgstr "Depende de" - -#: NOT FOUND IN SOURCE -msgid "DependsOn" -msgstr "DependeDe" - -#: html/Search/Elements/DisplayOptions:88 -msgid "Desc" -msgstr "" - -#: html/Elements/SelectSortOrder:58 -msgid "Descending" -msgstr "Descendente" - -#: html/SelfService/Create.html:102 html/Ticket/Create.html:154 -msgid "Describe the issue below" -msgstr "Descreva o problema abaixo" - -#: html/Admin/CustomFields/Modify.html:63 html/Admin/Elements/AddCustomFieldValue:59 html/Admin/Elements/EditCustomField:62 html/Admin/Elements/EditCustomFieldValues:58 html/Admin/Elements/EditScrip:57 html/Admin/Elements/ModifyTemplate:59 html/Admin/Groups/Modify.html:73 html/Admin/Queues/Modify.html:71 html/Search/Elements/EditSearches:58 html/User/Groups/Modify.html:72 -msgid "Description" -msgstr "Descrição" - -#: NOT FOUND IN SOURCE -msgid "Details" -msgstr "Detalhes" - -#: html/Search/Elements/EditFormat:73 html/Ticket/Elements/Tabs:110 -msgid "Display" -msgstr "Mostrar" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "Display Access Control List" -msgstr "Mostrar Lista de Controle de Acesso" - -#: html/Search/Elements/DisplayOptions:48 -msgid "Display Columns" -msgstr "Mostrar Colunas" - -#: lib/RT/Queue_Overlay.pm:101 -msgid "Display Scrip templates for this queue" -msgstr "Mostrar os modelos de Scrip desta fila" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "Display Scrips for this queue" -msgstr "Mostrar os Scrips desta fila" - -#: html/Ticket/Elements/ShowHistory:61 -msgid "Display mode" -msgstr "Modo de apresentação" - -#: lib/RT/Group_Overlay.pm:170 -msgid "Display saved searches for this group" -msgstr "Mostrar buscas salvas deste grupo" - -#: NOT FOUND IN SOURCE -msgid "Display ticket #%1" -msgstr "Apresentar o tíquete #%1" - -#: html/Elements/Footer:63 -msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" -msgstr "Distribuido sob a versão 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> da GNU GPL.</a>" - -#: lib/RT/System.pm:77 -msgid "Do anything and everything" -msgstr "Fazer qualquer coisa" - -#: html/Elements/Refresh:53 -msgid "Don't refresh this page." -msgstr "Não recarregar esta página." - -#: NOT FOUND IN SOURCE -msgid "Don't show search results" -msgstr "Não mostrar resultados da busca" - -#: html/Ticket/Elements/ShowTransactionAttachments:84 -msgid "Download" -msgstr "Baixar" - -#: html/Admin/Groups/index.html:63 html/Admin/Users/index.html:66 -msgid "Download as a tab-delimited file" -msgstr "Baixar como um arquivo com campos delimitados por tabulação" - -#: html/Elements/SelectDateType:55 html/Ticket/Create.html:211 html/Ticket/Elements/EditDates:68 html/Ticket/Elements/Reminders:135 html/Ticket/Elements/ShowDates:66 lib/RT/Ticket_Overlay.pm:1175 -msgid "Due" -msgstr "Vencido" - -#: NOT FOUND IN SOURCE -msgid "Due date '%1' could not be parsed" -msgstr "A data de vencimento '%1' não pôde ser entendida" - -#: NOT FOUND IN SOURCE -msgid "ERROR: Couldn't load ticket '%1': %2.\\n" -msgstr "ERRO: Não foi possível carregar o tíquete '%1': %2.\\n" - -#: html/Elements/Quicksearch:50 html/Elements/ShowSearch:51 html/index.html:109 -msgid "Edit" -msgstr "Editar" - -#: NOT FOUND IN SOURCE -msgid "Edit Conditions" -msgstr "Editar Condições" - -#: html/Search/Bulk.html:151 -msgid "Edit Custom Fields" -msgstr "Editar Campos Personalizados" - -#: html/Admin/Elements/ObjectCustomFields:94 html/Admin/Queues/CustomFields.html:66 html/Admin/Users/CustomFields.html:66 -#. ($Object->Name) -msgid "Edit Custom Fields for %1" -msgstr "Editar Campos Personalizados para %1" - -#: html/Admin/Global/CustomFields/Groups.html:56 -msgid "Edit Custom Fields for all groups" -msgstr "Editar Campos Personalizados para todos os grupos" - -#: html/Admin/Global/CustomFields/Users.html:56 -msgid "Edit Custom Fields for all users" -msgstr "Editar Campos Personalizados para todos os usuários" - -#: html/Admin/Global/CustomFields/Queue-Tickets.html:56 html/Admin/Global/CustomFields/Queue-Transactions.html:56 -msgid "Edit Custom Fields for tickets in all queues" -msgstr "Editar Campos Personalizados para tíquetes em todas as filas" - -#: html/Search/Bulk.html:190 html/Ticket/ModifyLinks.html:59 -msgid "Edit Links" -msgstr "Editar Vínculos" - -#: html/Search/Edit.html:70 -msgid "Edit Query" -msgstr "Editar Consulta" - -#: html/Ticket/Elements/Tabs:216 -msgid "Edit Search" -msgstr "Editar Busca" - -#: html/Admin/Queues/Templates.html:65 -#. ($QueueObj->Name) -msgid "Edit Templates for queue %1" -msgstr "Editar Modelos para a fila %1" - -#: NOT FOUND IN SOURCE -msgid "Edit keywords" -msgstr "Editar palavras chave" - -#: lib/RT/Group_Overlay.pm:169 -msgid "Edit saved searches for this group" -msgstr "Editar buscas salvas deste grupo" - -#: NOT FOUND IN SOURCE -msgid "Edit scrips" -msgstr "Editar scrips" - -#: html/Admin/Elements/GlobalCustomFieldTabs:62 html/Admin/Global/index.html:69 -msgid "Edit system templates" -msgstr "Editar os modelos do sistema" - -#: NOT FOUND IN SOURCE -msgid "Edit templates for %1" -msgstr "Editar os modelos para %1" - -#: lib/RT/Group_Overlay.pm:169 -msgid "EditSavedSearches" -msgstr "EditBuscasSalvas" - -#: html/Admin/Queues/Modify.html:142 -#. ($QueueObj->Name) -msgid "Editing Configuration for queue %1" -msgstr "Editando a configuração para a fila %1" - -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for user %1" -msgstr "Editando a configuração para o usuário %1" - -#: html/Admin/CustomFields/Modify.html:169 html/Admin/Elements/EditCustomField:122 -#. ($CustomFieldObj->Name()) -msgid "Editing CustomField %1" -msgstr "Editando o campo %1" - -#: html/Admin/Groups/Members.html:55 -#. ($Group->Name) -msgid "Editing membership for group %1" -msgstr "Editando afiliados do grupo %1" - -#: html/User/Groups/Members.html:152 -#. ($Group->Name) -msgid "Editing membership for personal group %1" -msgstr "Editando afiliados do grupo pessoal %1" - -#: NOT FOUND IN SOURCE -msgid "Editing template %1" -msgstr "Editando o modelo %1" - -#: lib/RT/Record.pm:1317 lib/RT/Record.pm:1394 lib/RT/Ticket_Overlay.pm:2521 lib/RT/Ticket_Overlay.pm:2611 -msgid "Either base or target must be specified" -msgstr "Você deve especificar a origem ou o destinatário" - -#: html/Admin/Users/Modify.html:76 html/Ticket/Elements/AddWatchers:79 html/User/Prefs.html:67 -msgid "Email" -msgstr "E-mail" - -#: lib/RT/User_Overlay.pm:237 -msgid "Email address in use" -msgstr "O endereço de e-mail já está em uso" - -#: NOT FOUND IN SOURCE -msgid "EmailAddress" -msgstr "Correio Eletrônico" - -#: NOT FOUND IN SOURCE -msgid "EmailEncoding" -msgstr "CodificaçãoDeE-mail" - -#: html/Admin/CustomFields/Modify.html:100 html/Admin/Elements/EditCustomField:74 -msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "Ativo (Desmarcar esta caixa desativa este campo personalizado)" - -#: html/Admin/Groups/Modify.html:89 html/User/Groups/Modify.html:76 -msgid "Enabled (Unchecking this box disables this group)" -msgstr "Ativo (Desmarcar esta caixa desativa este grupo)" - -#: html/Admin/Queues/Modify.html:107 -msgid "Enabled (Unchecking this box disables this queue)" -msgstr "Ativa (Desmarcar esta caixa desativa esta fila" - -#: NOT FOUND IN SOURCE -msgid "Enabled Custom Fields" -msgstr "Campos Personalizados Habilitados" - -#: html/Admin/Queues/index.html:80 -msgid "Enabled Queues" -msgstr "Filas Ativas" - -#: html/Admin/Elements/EditCustomField:138 html/Admin/Groups/Modify.html:156 html/Admin/Users/Modify.html:354 html/User/Groups/Modify.html:140 -#. (loc_fuzzy($msg)) -msgid "Enabled status %1" -msgstr "Estado %1 ativado" - -#: html/Admin/CustomFields/Modify.html:187 html/Admin/Queues/Modify.html:164 -#. (loc_fuzzy($msg)) -msgid "Enabled status: %1" -msgstr "Ativado estado: %1" - -#: lib/RT/CustomField_Overlay.pm:66 -msgid "Enter multiple values" -msgstr "Informar valores múltiplos" - -#: html/Elements/EditLinks:127 -msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." -msgstr "Informar objetos ou URIs para vincular aos objetos. Separar entradas múltiplas com espaço." - -#: lib/RT/CustomField_Overlay.pm:67 -msgid "Enter one value" -msgstr "Informar um valor" - -#: html/Elements/EditLinks:124 -msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." -msgstr "Informar filas ou URIs para ligar às filas. Separar entradas múltiplas com espaço." - -#: html/Elements/EditLinks:120 html/Search/Bulk.html:191 -msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "Informar identificadores de tíquete ou URIs que levam ao tíquete. Separar entradas mútiplas com espaço." - -#: lib/RT/CustomField_Overlay.pm:68 -msgid "Enter up to %1 values" -msgstr "Informar até %1 valores" - -#: html/Elements/Login:78 html/SelfService/Error.html:48 html/SelfService/Error.html:49 -msgid "Error" -msgstr "Erro" - -#: NOT FOUND IN SOURCE -msgid "Error adding watcher" -msgstr "Erro ao adicionar um observador" - -#: lib/RT/Queue_Overlay.pm:674 -msgid "Error in parameters to Queue->AddWatcher" -msgstr "Erro nos parâmetros para Queue->AddWatcher" - -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Queue->DelWatcher" -msgstr "Erro nos parâmetros para Queue->DelWatcher" - -#: lib/RT/Queue_Overlay.pm:835 -msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "Erro em parâmetros para Fila->RemoverObservador" - -#: lib/RT/Ticket_Overlay.pm:1374 -msgid "Error in parameters to Ticket->AddWatcher" -msgstr "Erro nos parâmetros para Ticket->AddWatcher" - -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Ticket->DelWatcher" -msgstr "Erro nos parâmetros para Ticket->DelWatcher" - -#: lib/RT/Ticket_Overlay.pm:1540 -msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "Erro em parâmetros para Tíquete->RemoverObservador" - -#: bin/rt-crontool:287 -msgid "Escalate tickets" -msgstr "Escalonar tíquetes" - -#: html/Ticket/Elements/ShowBasics:59 -msgid "Estimated" -msgstr "Estimado" - -#: etc/initialdata:20 -msgid "Everyone" -msgstr "Todos" - -#: bin/rt-crontool:273 -msgid "Example:" -msgstr "Exemplo:" - -#: html/Admin/Users/Modify.html:101 -msgid "Extra info" -msgstr "Informação adicional" - -#: lib/RT/SavedSearch.pm:179 -msgid "Failed to create search attribute" -msgstr "Falha ao criar atributo de busca" - -#: lib/RT/User_Overlay.pm:378 -msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "Não foi possível encontrar o pseudogrupo de usuários 'Privileged'." - -#: lib/RT/User_Overlay.pm:385 -msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "Não foi possível encontrar o pseudogrupo de usuários 'Unprivileged'" - -#: bin/rt-crontool:208 -#. ($modname, $@) -msgid "Failed to load module %1. (%2)" -msgstr "Falha ao carregar o módulo %1. (%2)" - -#: lib/RT/SavedSearch.pm:154 -#. ($privacy) -msgid "Failed to load object for %1" -msgstr "Falha ao carregar objeto para %1" - -#: lib/RT/Date.pm:444 -msgid "Feb." -msgstr "Fev." - -#: NOT FOUND IN SOURCE -msgid "February" -msgstr "Fevereiro" - -#: html/Elements/SelectAttachmentField:52 -msgid "Filename" -msgstr "Nome de arquivo" - -#: lib/RT/CustomField_Overlay.pm:71 -msgid "Fill in multiple text areas" -msgstr "Preencher múltiplas áreas de texto" - -#: lib/RT/CustomField_Overlay.pm:76 -msgid "Fill in multiple wikitext areas" -msgstr "Preencher múltiplas áreas de texto wiki" - -#: lib/RT/CustomField_Overlay.pm:72 -msgid "Fill in one text area" -msgstr "Preencher uma única área de texto" - -#: lib/RT/CustomField_Overlay.pm:77 -msgid "Fill in one wikitext area" -msgstr "Preencher uma única [area de texto wiki" - -#: html/Admin/CustomFields/Modify.html:109 html/Admin/CustomFields/Modify.html:120 -msgid "Fill in this field with a URL." -msgstr "Preencher este campo com uma URL." - -#: lib/RT/CustomField_Overlay.pm:73 -msgid "Fill in up to %1 text areas" -msgstr "Preencher até %1 áreas de texto" - -#: lib/RT/CustomField_Overlay.pm:78 -msgid "Fill in up to %1 wikitext areas" -msgstr "Preencher at[e %1 áreas de texto wiki" - -#: html/Search/Elements/PickBasics:151 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:99 lib/RT/Tickets_Overlay.pm:1957 -msgid "Final Priority" -msgstr "Prioridade Final" - -#: lib/RT/Ticket_Overlay.pm:1166 -msgid "FinalPriority" -msgstr "PrioridadeFinal" - -#: NOT FOUND IN SOURCE -msgid "Find group whose" -msgstr "Encontrar grupo que" - -#: html/Admin/Groups/index.html:74 html/Admin/Queues/People.html:84 html/Ticket/Elements/EditPeople:57 -msgid "Find groups whose" -msgstr "Encontrar grupos que" - -#: NOT FOUND IN SOURCE -msgid "Find new/open tickets" -msgstr "Encontrar tíquetes novos/abertos" - -#: html/Admin/Queues/People.html:80 html/Admin/Users/index.html:72 html/Ticket/Elements/EditPeople:53 -msgid "Find people whose" -msgstr "Encontrar pessoas que" - -#: html/Search/Results.html:149 -msgid "Find tickets" -msgstr "Encontrar tíquetes" - -#: NOT FOUND IN SOURCE -msgid "Finish Approval" -msgstr "Terminar Aprovação" - -#: html/Ticket/Elements/Tabs:83 -msgid "First" -msgstr "Primeiro" - -#: NOT FOUND IN SOURCE -msgid "First page" -msgstr "Primeira página" - -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:764 -msgid "Foo Bar Baz" -msgstr "" - -#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:755 -msgid "Foo!" -msgstr "" - -#: html/Search/Bulk.html:85 -msgid "Force change" -msgstr "Forçar alteração" - -#: html/Search/Elements/EditFormat:54 -msgid "Format" -msgstr "Formato" - -#: html/Search/Results.html:147 -#. ($ticketcount) -msgid "Found %quant(%1,ticket)" -msgstr "Encontrado(s) %quant(%1,tíquete(s)" - -#: lib/RT/Record.pm:973 -msgid "Found Object" -msgstr "Objeto Encontrado" - -#: lib/RT/Date.pm:423 -msgid "Fri." -msgstr "Sex." - -#: html/Ticket/Elements/ShowHistory:68 html/Ticket/Elements/ShowHistory:74 -msgid "Full headers" -msgstr "Cabeçalhos completos" - -#: html/Tools/Offline.html:87 -msgid "Get template from file" -msgstr "Pegar modelo do arquivo" - -#: NOT FOUND IN SOURCE -msgid "Getting the current user from a pgp sig\\n" -msgstr "Obtendo o usuário corrente a partir de uma assinatura pgp\\n" - -#: lib/RT/Transaction_Overlay.pm:705 -#. ($New->Name) -msgid "Given to %1" -msgstr "Dado a %1" - -#: html/Admin/Elements/Tabs:67 html/Admin/index.html:84 -msgid "Global" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:57 -msgid "Global Custom Fields" -msgstr "Campos Personalizados Globais" - -#: NOT FOUND IN SOURCE -msgid "Global Keyword Selections" -msgstr "Seleções de Palavras Chave Globais" - -#: NOT FOUND IN SOURCE -msgid "Global Scrips" -msgstr "Scrips Globais" - -#: html/Admin/Global/CustomFields/index.html:61 -msgid "Global custom field configuration" -msgstr "Configuração de campos personalizados globais" - -#: html/Admin/Global/MyRT.html:95 -#. ($pane) -msgid "Global portlet %1 saved." -msgstr "Portlet global %1 salvo." - -#: html/Admin/Elements/SelectTemplate:61 -#. (loc($Template->Name)) -msgid "Global template: %1" -msgstr "Modelo global: %1" - -#: NOT FOUND IN SOURCE -msgid "Go" -msgstr "Ir" - -#: html/Admin/CustomFields/index.html:82 html/Admin/Groups/index.html:69 html/Admin/Groups/index.html:75 html/Admin/Queues/People.html:82 html/Admin/Queues/People.html:86 html/Admin/Queues/index.html:68 html/Admin/Users/index.html:75 html/Approvals/index.html:54 html/Elements/RefreshHomepage:50 html/Search/Results.html:76 html/Search/Results.html:92 html/Ticket/Elements/EditPeople:55 html/Ticket/Elements/EditPeople:59 html/Tools/Offline.html:91 -msgid "Go!" -msgstr "Ir!" - -#: NOT FOUND IN SOURCE -msgid "Good pgp sig from %1\\n" -msgstr "Assinatura pgp válida de %1\\n" - -#: NOT FOUND IN SOURCE -msgid "Goto page" -msgstr "Ir para a página" - -#: html/Elements/GotoTicket:48 html/SelfService/Elements/GotoTicket:48 -msgid "Goto ticket" -msgstr "Ir para o tíquete" - -#: html/Ticket/Elements/AddWatchers:69 html/Ticket/Elements/ShowGroupMembers:57 html/User/Elements/DelegateRights:101 -msgid "Group" -msgstr "Grupo" - -#: NOT FOUND IN SOURCE -msgid "Group %1 %2: %3" -msgstr "Grupo %1 %2: %3" - -#: html/Admin/Elements/CustomFieldTabs:70 html/Admin/Elements/GroupTabs:68 html/Admin/Elements/QueueTabs:84 html/Admin/Elements/SystemTabs:67 html/Admin/Global/index.html:78 -msgid "Group Rights" -msgstr "Direitos de Acesso do Grupo" - -#: lib/RT/Group_Overlay.pm:985 -msgid "Group already has member" -msgstr "O grupo já tem um membro" - -#: NOT FOUND IN SOURCE -msgid "Group could not be created." -msgstr "O grupo não pôde ser criado." - -#: html/Admin/Groups/Modify.html:115 -#. ($create_msg) -msgid "Group could not be created: %1" -msgstr "O grupo não pôde ser criado: %1" - -#: lib/RT/Group_Overlay.pm:523 -msgid "Group created" -msgstr "Grupo criado" - -#: lib/RT/Group_Overlay.pm:1157 -msgid "Group has no such member" -msgstr "O grupo não contém este membro" - -#: lib/RT/Group_Overlay.pm:965 lib/RT/Queue_Overlay.pm:750 lib/RT/Queue_Overlay.pm:810 lib/RT/Ticket_Overlay.pm:1432 lib/RT/Ticket_Overlay.pm:1512 -msgid "Group not found" -msgstr "Grupo não encontrado" - -#: NOT FOUND IN SOURCE -msgid "Group not found.\\n" -msgstr "Grupo não encontrado.\\n" - -#: NOT FOUND IN SOURCE -msgid "Group not specified.\\n" -msgstr "Grupo não especificado.\\n" - -#: html/Admin/Elements/GlobalCustomFieldTabs:61 html/Admin/Elements/SelectNewGroupMembers:59 html/Admin/Elements/Tabs:58 html/Admin/Global/CustomFields/index.html:71 html/Admin/Groups/Members.html:88 html/Admin/Queues/People.html:106 html/Admin/Users/Memberships.html:55 html/Admin/index.html:69 html/User/Groups/Members.html:90 lib/RT/CustomField_Overlay.pm:1213 -msgid "Groups" -msgstr "Grupos" - -#: lib/RT/Group_Overlay.pm:991 -msgid "Groups can't be members of their members" -msgstr "Grupos não podem ser membros de seus próprios membros" - -#: html/Admin/Groups/index.html:88 -msgid "Groups matching search criteria" -msgstr "Grupos que satisfazem ao critério de busca" - -#: html/Ticket/Elements/ShowRequestor:79 -msgid "Groups this user belongs to" -msgstr "Grupos a que este usuário pertence" - -#: lib/RT/Interface/CLI.pm:96 lib/RT/Interface/CLI.pm:96 -msgid "Hello!" -msgstr "Olá!" - -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:771 -#. ($name) -msgid "Hello, %1" -msgstr "Olá, %1" - -#: html/Admin/Elements/GroupTabs:72 html/Admin/Elements/UserTabs:66 html/Ticket/Elements/ShowHistory:55 html/Ticket/Elements/Tabs:113 -msgid "History" -msgstr "Histórico" - -#: html/Admin/Groups/History.html:64 -#. ($GroupObj->Name) -msgid "History of the group %1" -msgstr "Histórico do grupo %1" - -#: html/Admin/Users/History.html:64 -#. ($UserObj->Name) -msgid "History of the user %1" -msgstr "Histórico do usuário %1" - -#: NOT FOUND IN SOURCE -msgid "HomePhone" -msgstr "Telefone Residencial" - -#: html/Elements/Tabs:68 -msgid "Homepage" -msgstr "Início" - -#: html/Elements/SelectTimeUnits:50 -msgid "Hours" -msgstr "Horas" - -#: lib/RT/Base.pm:135 -#. (6) -msgid "I have %quant(%1,concrete mixer)." -msgstr "Eu tenho %quant(%1,concrete mixer)." - -#: NOT FOUND IN SOURCE -msgid "I have [quant,_1,concrete mixer]." -msgstr "Tenho [quant,_1,concrete mixer]." - -#: html/Search/Build.html:466 lib/RT/Report/Tickets.pm:417 -msgid "I'm lost" -msgstr "Estou perdido" - -#: html/Ticket/Elements/ShowBasics:50 lib/RT/Tickets_Overlay.pm:1882 -msgid "Id" -msgstr "Identificador" - -#: html/Admin/Users/Modify.html:67 html/User/Prefs.html:62 -msgid "Identity" -msgstr "Identidade" - -#: etc/initialdata:429 -msgid "If an approval is rejected, reject the original and delete pending approvals" -msgstr "" -"Se uma aprovação não é concedida, rejeitar o original e remover aprovações " -"pendentes" - -#: html/Tools/Offline.html:76 -msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "" -"Se nenhum Requisitante for especificado, criar tíquetes com este " -"requisitante." - -#: html/Tools/Offline.html:67 -msgid "If no queue is specified, create tickets in this queue." -msgstr "Se nenhuma fila for especificada, criar tíquetes nesta fila." - -#: bin/rt-crontool:269 -msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." -msgstr "Se esta ferramenta estiver com setgid, um usuário local mal-intecionado pode conseguir acesso administrativo sobre o RT." - -#: html/Admin/Queues/People.html:128 html/Ticket/Modify.html:62 html/Ticket/ModifyAll.html:130 html/Ticket/ModifyPeople.html:62 -msgid "If you've updated anything above, be sure to" -msgstr "Se você alterou qualquer coisa acima, não se esqueça de" - -#: lib/RT/Record.pm:964 -msgid "Illegal value for %1" -msgstr "Valor ilegal para %1" - -#: lib/RT/Record.pm:967 -msgid "Immutable field" -msgstr "Campo imutável" - -#: NOT FOUND IN SOURCE -msgid "Include disabled custom fields in listing." -msgstr "Incluir campoas personalizados desabilitados na listagem." - -#: html/Admin/Groups/index.html:67 -msgid "Include disabled groups in listing." -msgstr "Incluir grupos inativos na listagem." - -#: html/Admin/Queues/index.html:67 -msgid "Include disabled queues in listing." -msgstr "Incluir filas inativas na listagem." - -#: html/Admin/Users/index.html:73 -msgid "Include disabled users in search." -msgstr "Incluir usuários inativos na busca." - -#: html/Admin/CustomFields/Modify.html:115 -msgid "Include page" -msgstr "Incluir página" - -#: html/Search/Build.html:492 lib/RT/Report/Tickets.pm:443 -msgid "Incomplete Query" -msgstr "Consulta Incompleta" - -#: html/Search/Build.html:489 lib/RT/Report/Tickets.pm:440 -msgid "Incomplete query" -msgstr "Consulta incompleta" - -#: html/Search/Elements/PickBasics:150 lib/RT/Tickets_Overlay.pm:1932 -msgid "Initial Priority" -msgstr "Prioridade Inicial" - -#: lib/RT/Ticket_Overlay.pm:1165 lib/RT/Ticket_Overlay.pm:1167 -msgid "InitialPriority" -msgstr "InitialPriority" - -#: lib/RT/ScripAction_Overlay.pm:135 -msgid "Input error" -msgstr "Erro de entrada" - -#: html/Elements/ValidateCustomFields:70 lib/RT/CustomField_Overlay.pm:1024 lib/RT/CustomField_Overlay.pm:1165 -#. ($CF->FriendlyPattern) -#. ($self->FriendlyPattern) -msgid "Input must match %1" -msgstr "Entrada precisa satisfazer %1" - -#: NOT FOUND IN SOURCE -msgid "Interest noted" -msgstr "Interesse notado" - -#: lib/RT/Ticket_Overlay.pm:3531 -msgid "Internal Error" -msgstr "Erro Interno" - -#: lib/RT/Record.pm:315 -#. ($id->{error_message}) -msgid "Internal Error: %1" -msgstr "Erro Interno: %1" - -#: lib/RT/Group_Overlay.pm:670 -msgid "Invalid Group Type" -msgstr "Tipo Inválido de Grupo" - -#: lib/RT/Principal_Overlay.pm:163 -msgid "Invalid Right" -msgstr "Direito Inválido" - -#: NOT FOUND IN SOURCE -msgid "Invalid Type" -msgstr "Tipo Inválido" - -#: lib/RT/Record.pm:969 -msgid "Invalid data" -msgstr "Dado inválido" - -#: NOT FOUND IN SOURCE -msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "Proprietário inválido. Usando 'nobody'." - -#: lib/RT/CustomField_Overlay.pm:210 lib/RT/CustomField_Overlay.pm:681 -#. ($msg) -msgid "Invalid pattern: %1" -msgstr "Padrão inválido: %1" - -#: lib/RT/Scrip_Overlay.pm:159 lib/RT/Template_Overlay.pm:246 -msgid "Invalid queue" -msgstr "Fila inválida" - -#: lib/RT/ACE_Overlay.pm:266 lib/RT/ACE_Overlay.pm:275 lib/RT/ACE_Overlay.pm:281 lib/RT/ACE_Overlay.pm:292 -msgid "Invalid right" -msgstr "Direito de acesso inválido" - -#: lib/RT/Record.pm:290 -#. ($key) -msgid "Invalid value for %1" -msgstr "Valor inválido para %1" - -#: lib/RT/Record.pm:1632 -msgid "Invalid value for custom field" -msgstr "Valor inválido para campo personalizado" - -#: lib/RT/Ticket_Overlay.pm:426 -msgid "Invalid value for status" -msgstr "Valor inválido para estado" - -#: bin/rt-crontool:270 -msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." -msgstr "É muito importante que usuários não privilegiados não tenham permissão para utilizar esta ferramenta." - -#: bin/rt-crontool:271 -msgid "It is suggested that you create a non-privileged unix user with the correct group membership and RT access to run this tool." -msgstr "Sugere-se a criação de um usuário Unix não privilegiado com a correta filiação a grupo e com acesso ao RT para executar utilizar esta ferramenta." - -#: bin/rt-crontool:233 -msgid "It takes several arguments:" -msgstr "Requer vários argumentos:" - -#: html/Search/Elements/EditFormat:87 -msgid "Italic" -msgstr "Itálico" - -#: NOT FOUND IN SOURCE -msgid "Items pending my approval" -msgstr "Itens requerendo minha aprovação" - -#: lib/RT/Date.pm:443 -msgid "Jan." -msgstr "Jan." - -#: NOT FOUND IN SOURCE -msgid "January" -msgstr "Janeiro" - -#: lib/RT/Group_Overlay.pm:168 -msgid "Join or leave this group" -msgstr "Entre ou deixe este grupo" - -#: lib/RT/Date.pm:449 -msgid "Jul." -msgstr "Jul." - -#: NOT FOUND IN SOURCE -msgid "July" -msgstr "Julho" - -#: html/Ticket/Elements/Tabs:127 -msgid "Jumbo" -msgstr "Jumbo" - -#: lib/RT/Date.pm:448 -msgid "Jun." -msgstr "Jun." - -#: NOT FOUND IN SOURCE -msgid "June" -msgstr "Junho" - -#: NOT FOUND IN SOURCE -msgid "Keyword" -msgstr "Palavra chave" - -#: NOT FOUND IN SOURCE -msgid "Lang" -msgstr "Líng" - -#: html/Admin/Users/Modify.html:96 html/User/Prefs.html:78 -msgid "Language" -msgstr "Língua" - -#: html/Search/Elements/EditFormat:81 -msgid "Large" -msgstr "Grande" - -#: html/Ticket/Elements/Tabs:98 -msgid "Last" -msgstr "Último" - -#: html/Ticket/Elements/EditDates:61 html/Ticket/Elements/ShowDates:62 -msgid "Last Contact" -msgstr "Último Contato" - -#: html/Elements/SelectDateType:52 -msgid "Last Contacted" -msgstr "Contactado em" - -#: NOT FOUND IN SOURCE -msgid "Last Notified" -msgstr "Notificado em" - -#: html/Elements/SelectDateType:53 -msgid "Last Updated" -msgstr "Atualizado em" - -#: NOT FOUND IN SOURCE -msgid "LastUpdated" -msgstr "LastUpdated" - -#: html/Search/Elements/PickBasics:105 -msgid "LastUpdatedBy" -msgstr "UltimaAtualizacaoPor" - -#: html/Ticket/Elements/ShowBasics:70 -msgid "Left" -msgstr "Resta" - -#: html/Admin/Users/Modify.html:111 -msgid "Let this user access RT" -msgstr "Deixar este usuário acessar RT" - -#: html/Admin/Users/Modify.html:115 -msgid "Let this user be granted rights" -msgstr "Deixar este usuário receber direitos de acesso adicionais" - -#: NOT FOUND IN SOURCE -msgid "Limiting owner to %1 %2" -msgstr "Limitando proprietário a %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Limiting queue to %1 %2" -msgstr "Limitando fila a %1 %2" - -#: html/Search/Elements/EditFormat:70 -msgid "Link" -msgstr "Vínculo" - -#: lib/RT/Record.pm:1328 -msgid "Link already exists" -msgstr "O vínculo já existe" - -#: lib/RT/Record.pm:1342 -msgid "Link could not be created" -msgstr "O vínculo não pôde ser criado" - -#: lib/RT/Record.pm:1348 -#. ($TransString) -msgid "Link created (%1)" -msgstr "Vínculo criado (%1)" - -#: lib/RT/Record.pm:1409 -#. ($TransString) -msgid "Link deleted (%1)" -msgstr "Vínculo removido (%1)" - -#: lib/RT/Record.pm:1415 -msgid "Link not found" -msgstr "Vínculo não encontrado" - -#: html/Ticket/ModifyLinks.html:48 html/Ticket/ModifyLinks.html:52 -#. ($Ticket->Id) -msgid "Link ticket #%1" -msgstr "Vincular o tíquete #%1" - -#: NOT FOUND IN SOURCE -msgid "Link ticket %1" -msgstr "Vincular o tíquete %1" - -#: html/Admin/CustomFields/Modify.html:104 -msgid "Link values to" -msgstr "Vincular valores a" - -#: lib/RT/Ticket_Overlay.pm:702 -msgid "Linking. Permission denied" -msgstr "Vinculando. Permissão negada" - -#: html/Ticket/Create.html:218 html/Ticket/Elements/ShowSummary:97 html/Ticket/Elements/Tabs:122 html/Ticket/ModifyAll.html:80 -msgid "Links" -msgstr "Vínculos" - -#: html/Search/Elements/EditSearches:77 -msgid "Load" -msgstr "Carregar" - -#: html/Search/Elements/EditSearches:75 -msgid "Load saved search:" -msgstr "Carregar buscas salvas:" - -#: lib/RT/System.pm:88 -msgid "LoadSavedSearch" -msgstr "CarregarBuscaSalva" - -#: html/Admin/Tools/Configuration.html:66 -msgid "Loaded perl modules" -msgstr "Módulos perl carregados" - -#: lib/RT/SavedSearch.pm:113 -#. ($self->Name) -msgid "Loaded search %1" -msgstr "Busca %1 carregada" - -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:128 -msgid "Location" -msgstr "Localização" - -#: NOT FOUND IN SOURCE -msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." -msgstr "" -"O diretório de log %1 não foi encontrado ou não pôde ser alterado.\\n RT não " -"pode funcionar desta maneira." - -#: html/Elements/Header:93 -#. ("<span>".$session{'CurrentUser'}->Name."</span>") -msgid "Logged in as %1" -msgstr "Assinado como %1" - -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:102 html/Elements/Login:70 html/Elements/Login:86 lib/RT/StyleGuide.pod:795 -msgid "Login" -msgstr "Entrar" - -#: html/Elements/Header:103 -msgid "Logout" -msgstr "Sair" - -#: lib/RT/CustomField_Overlay.pm:935 -msgid "Lookup type mismatch" -msgstr "Tipo de consulta não corresponde" - -#: html/Search/Bulk.html:84 -msgid "Make Owner" -msgstr "Definir como proprietário" - -#: html/Search/Bulk.html:108 -msgid "Make Status" -msgstr "Definir o estado" - -#: html/Search/Bulk.html:116 -msgid "Make date Due" -msgstr "Definir o prazo final" - -#: html/Search/Bulk.html:118 -msgid "Make date Resolved" -msgstr "Definir a data de resolução" - -#: html/Search/Bulk.html:112 -msgid "Make date Started" -msgstr "Definir a data de iniciado" - -#: html/Search/Bulk.html:110 -msgid "Make date Starts" -msgstr "Definir a data início" - -#: html/Search/Bulk.html:114 -msgid "Make date Told" -msgstr "Definir a data de última alteração" - -#: html/Search/Bulk.html:104 -msgid "Make priority" -msgstr "Definir a prioridade" - -#: html/Search/Bulk.html:106 -msgid "Make queue" -msgstr "Definir a fila" - -#: html/Search/Bulk.html:102 -msgid "Make subject" -msgstr "Definir o assunto" - -#: lib/RT/Group_Overlay.pm:171 -msgid "Make this group visible to user" -msgstr "Fazer este grupo visível para o usuário" - -#: html/Admin/index.html:80 -msgid "Manage custom fields and custom field values" -msgstr "Gerenciar campos personalizados e valores de campos personalizados" - -#: html/Admin/index.html:71 -msgid "Manage groups and group membership" -msgstr "Administrar grupos e afiliações" - -#: html/Admin/index.html:87 -msgid "Manage properties and configuration which apply to all queues" -msgstr "Administrar propriedades e configurações aplicáveis a todas as filas" - -#: html/Admin/index.html:76 -msgid "Manage queues and queue-specific properties" -msgstr "Administrar filas e suas propriedades específicas" - -#: html/Admin/index.html:66 -msgid "Manage users and passwords" -msgstr "Administrar usuários e senhas" - -#: lib/RT/Date.pm:445 -msgid "Mar." -msgstr "Mar." - -#: NOT FOUND IN SOURCE -msgid "March" -msgstr "Março" - -#: NOT FOUND IN SOURCE -msgid "May" -msgstr "Maio" - -#: lib/RT/Date.pm:447 -msgid "May." -msgstr "Mai." - -#: lib/RT/Transaction_Overlay.pm:752 -#. ($value) -msgid "Member %1 added" -msgstr "Membro %1 adicionado" - -#: lib/RT/Transaction_Overlay.pm:792 -#. ($value) -msgid "Member %1 deleted" -msgstr "Membro %1 removido" - -#: lib/RT/Group_Overlay.pm:1002 -msgid "Member added" -msgstr "Membro adicionado" - -#: lib/RT/Group_Overlay.pm:1164 -msgid "Member deleted" -msgstr "Membro removido" - -#: lib/RT/Group_Overlay.pm:1168 -msgid "Member not deleted" -msgstr "Membro não removido" - -#: html/Elements/SelectLinkType:49 -msgid "Member of" -msgstr "Membro de" - -#: NOT FOUND IN SOURCE -msgid "MemberOf" -msgstr "MembroDe" - -#: html/Admin/Elements/GroupTabs:65 html/User/Elements/GroupTabs:65 -msgid "Members" -msgstr "Membros" - -#: lib/RT/Transaction_Overlay.pm:749 -#. ($value) -msgid "Membership in %1 added" -msgstr "Filiação em %1 adicionada" - -#: lib/RT/Transaction_Overlay.pm:789 -#. ($value) -msgid "Membership in %1 deleted" -msgstr "Filiação em %1 removida" - -#: html/Admin/Elements/UserTabs:63 -msgid "Memberships" -msgstr "Filiações" - -#: html/Admin/Users/Memberships.html:62 -#. ($UserObj->Name) -msgid "Memberships of the user %1" -msgstr "Filiações do usuário %1" - -#: lib/RT/Ticket_Overlay.pm:2905 -msgid "Merge Successful" -msgstr "União bem sucedida" - -#: lib/RT/Ticket_Overlay.pm:2783 -msgid "Merge failed. Couldn't set EffectiveId" -msgstr "União falhou. Não foi possível definir o EffectiveId" - -#: lib/RT/Ticket_Overlay.pm:2800 -msgid "Merge failed. Couldn't set Status" -msgstr "Fusão falhou. Não foi possível definir Estado." - -#: html/Elements/EditLinks:132 html/Ticket/Elements/BulkLinks:50 -msgid "Merge into" -msgstr "Unir a" - -#: lib/RT/Transaction_Overlay.pm:755 -#. ($value) -msgid "Merged into %1" -msgstr "Unido ao %1" - -#: html/Search/Bulk.html:145 html/Ticket/Update.html:120 -msgid "Message" -msgstr "Mensagem" - -#: html/Ticket/Elements/ShowTransactionAttachments:166 -msgid "Message body not shown because it is too large or is not plain text." -msgstr "Corpo da mensagem não mostrado porque é muito grande ou náo é um texto plano." - -#: lib/RT/Ticket_Overlay.pm:2454 -msgid "Message could not be recorded" -msgstr "Mensagem não pode ser gravada" - -#: lib/RT/Ticket_Overlay.pm:2457 -msgid "Message recorded" -msgstr "Mensagem gravada" - -#: html/Ticket/Elements/PreviewScrips:124 -msgid "Messages about this ticket will not be sent to..." -msgstr "Mensagens sobre este tíquete não serão enviadas para..." - -#: html/Elements/SelectTimeUnits:49 -msgid "Minutes" -msgstr "Minutos" - -#: html/Search/Build.html:496 lib/RT/Report/Tickets.pm:447 -msgid "Mismatched parentheses" -msgstr "Parênteses sem correspondente" - -#: lib/RT/Record.pm:971 -msgid "Missing a primary key?: %1" -msgstr "Faltando uma chave primária?: %1" - -#: html/Admin/Users/Modify.html:196 html/User/Prefs.html:94 -msgid "Mobile" -msgstr "Móvel" - -#: NOT FOUND IN SOURCE -msgid "MobilePhone" -msgstr "Celular" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "Modify Access Control List" -msgstr "Modificar Lista de Controle de Acesso" - -#: NOT FOUND IN SOURCE -msgid "Modify Custom Field %1" -msgstr "Modificar o campo personalizado %1" - -#: html/Admin/Elements/ObjectCustomFields:98 -#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) -msgid "Modify Custom Fields which apply to %1 for all %2" -msgstr "Modificar Campos Personalizados que se aplicam a %1 para todos %2" - -#: html/Admin/Elements/ObjectCustomFields:100 -#. (loc(lc($Types))) -msgid "Modify Custom Fields which apply to all %1" -msgstr "Modificar Campos Personalizados que se aplicam a todos %1" - -#: NOT FOUND IN SOURCE -msgid "Modify Custom Fields which apply to all queues" -msgstr "Modificar Campos Personalizados que se aplicam a todas as filas" - -#: html/Admin/Global/GroupRights.html:108 html/Admin/Groups/GroupRights.html:96 html/Admin/Queues/GroupRights.html:109 -msgid "Modify Group Rights" -msgstr "Modificar Direitos de Grupo" - -#: html/Admin/Groups/Members.html:107 html/User/Groups/Members.html:103 -msgid "Modify Members" -msgstr "Modificar Membros" - -#: html/User/Delegation.html:60 -msgid "Modify Rights" -msgstr "Modificar Direitos" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "Modify Scrip templates for this queue" -msgstr "Modificar modelos de Scrip desta fila" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "Modify Scrips for this queue" -msgstr "Modificar Scrips desta fila" - -#: NOT FOUND IN SOURCE -msgid "Modify System ACLS" -msgstr "Modificar ACLs do Sistema" - -#: NOT FOUND IN SOURCE -msgid "Modify Template %1" -msgstr "Modificar Esquema %1" - -#: html/Admin/Global/UserRights.html:77 html/Admin/Groups/UserRights.html:78 html/Admin/Queues/UserRights.html:77 -msgid "Modify User Rights" -msgstr "Modificar Direitos de Usuário" - -#: html/Admin/Queues/CustomField.html:68 -#. ($QueueObj->Name()) -msgid "Modify a CustomField for queue %1" -msgstr "Modificar um Campo Personalizado para a fila %1" - -#: NOT FOUND IN SOURCE -msgid "Modify a CustomField that applies to all queues" -msgstr "Modificar um Campo Personalizado que se aplica a todas as filas" - -#: html/Admin/Queues/Scrip.html:84 -#. ($QueueObj->Name) -msgid "Modify a scrip for queue %1" -msgstr "Modificar um scrip para a fila %1" - -#: html/Admin/Global/Scrip.html:77 -msgid "Modify a scrip that applies to all queues" -msgstr "Modificar um scrip aplicável a todas as filas" - -#: html/Admin/CustomFields/Objects.html:92 -#. ($CF->Name) -msgid "Modify associated objects for %1" -msgstr "Modificar objetos associados a %1" - -#: NOT FOUND IN SOURCE -msgid "Modify dates for # %1" -msgstr "Modificar datas para # %1" - -#: html/Ticket/ModifyDates.html:48 html/Ticket/ModifyDates.html:52 -#. ($TicketObj->Id) -msgid "Modify dates for #%1" -msgstr "Modificar as datas para #%1" - -#: html/Ticket/ModifyDates.html:59 -#. ($TicketObj->Id) -msgid "Modify dates for ticket # %1" -msgstr "Modificar as datas para o tíquete # %1" - -#: html/Admin/Elements/GlobalCustomFieldTabs:67 html/Admin/Global/index.html:74 -msgid "Modify global custom fields" -msgstr "Modificar campos personalizados globais" - -#: html/Admin/Elements/GlobalCustomFieldTabs:72 html/Admin/Global/GroupRights.html:48 html/Admin/Global/GroupRights.html:51 html/Admin/Global/index.html:79 -msgid "Modify global group rights" -msgstr "Modificar direitos de acesso globais de grupo" - -#: html/Admin/Global/GroupRights.html:56 -msgid "Modify global group rights." -msgstr "Modificar direitos de acesso globais de grupo." - -#: NOT FOUND IN SOURCE -msgid "Modify global rights for groups" -msgstr "Modificar direitos globais para grupos" - -#: NOT FOUND IN SOURCE -msgid "Modify global rights for users" -msgstr "Modificar direitos globais para usuários" - -#: NOT FOUND IN SOURCE -msgid "Modify global scrips" -msgstr "Modificar scrips globais" - -#: html/Admin/Global/UserRights.html:48 html/Admin/Global/UserRights.html:51 html/Admin/Global/index.html:83 -msgid "Modify global user rights" -msgstr "Modificar direitos de acesso globais de usuário" - -#: html/Admin/Global/UserRights.html:56 -msgid "Modify global user rights." -msgstr "Modificar direitos de acesso globais de usuário." - -#: lib/RT/Group_Overlay.pm:165 -msgid "Modify group metadata or delete group" -msgstr "Modificar metadados do grupo ou removê-lo" - -#: html/Admin/CustomFields/GroupRights.html:166 -#. ($CustomFieldObj->Name) -msgid "Modify group rights for custom field %1" -msgstr "Modificar direitos de grupo para campo personalizado %1" - -#: html/Admin/Groups/GroupRights.html:48 html/Admin/Groups/GroupRights.html:52 html/Admin/Groups/GroupRights.html:58 -#. ($GroupObj->Name) -msgid "Modify group rights for group %1" -msgstr "Modificar os direitos de acesso do grupo %1" - -#: html/Admin/Queues/GroupRights.html:48 html/Admin/Queues/GroupRights.html:52 -#. ($QueueObj->Name) -msgid "Modify group rights for queue %1" -msgstr "Modificar os direitos de acesso de grupo para a fila %1" - -#: lib/RT/Group_Overlay.pm:167 -msgid "Modify membership roster for this group" -msgstr "Modificar afiliados deste grupo" - -#: lib/RT/System.pm:84 -msgid "Modify one's own RT account" -msgstr "Modificar sua própria conta RT" - -#: html/Admin/Queues/People.html:48 html/Admin/Queues/People.html:52 -#. ($QueueObj->Name) -msgid "Modify people related to queue %1" -msgstr "Modificar as pessoas relacionadas à fila %1" - -#: html/Ticket/ModifyPeople.html:48 html/Ticket/ModifyPeople.html:52 html/Ticket/ModifyPeople.html:59 -#. ($Ticket->id) -#. ($Ticket->Id) -msgid "Modify people related to ticket #%1" -msgstr "Modificar as pessoas relacionadas ao tíquete #%1" - -#: html/Admin/Queues/Scrips.html:69 -#. ($QueueObj->Name) -msgid "Modify scrips for queue %1" -msgstr "Modificar os scrips da fila %1" - -#: html/Admin/Elements/GlobalCustomFieldTabs:58 html/Admin/Global/Scrips.html:67 html/Admin/Global/index.html:65 -msgid "Modify scrips which apply to all queues" -msgstr "Modificar scrips aplicáveis a todas as filas" - -#: html/Admin/Global/Template.html:104 html/Admin/Global/Template.html:48 html/Admin/Global/Template.html:53 html/Admin/Queues/Template.html:101 -#. (loc($TemplateObj->Name())) -#. ($TemplateObj->id) -msgid "Modify template %1" -msgstr "Modificar o modelo %1" - -#: html/Admin/Global/Templates.html:67 -msgid "Modify templates which apply to all queues" -msgstr "Modificar modelos que se aplicam a todas as filas" - -#: html/Admin/Global/index.html:87 -msgid "Modify the default \"RT at a glance\" view" -msgstr "Modificar \"RT por alto\" default" - -#: html/Admin/Groups/Modify.html:125 html/User/Groups/Modify.html:109 -#. ($Group->Name) -msgid "Modify the group %1" -msgstr "Modificar o grupo %1" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "Modify the queue watchers" -msgstr "Modificar os observadores da fila" - -#: html/Admin/Users/Modify.html:313 -#. ($UserObj->Name) -msgid "Modify the user %1" -msgstr "Modificar o usuário %1" - -#: html/Ticket/ModifyAll.html:60 -#. ($Ticket->Id) -msgid "Modify ticket # %1" -msgstr "Modificar o tíquete # %1" - -#: html/Ticket/Modify.html:48 html/Ticket/Modify.html:51 html/Ticket/Modify.html:57 -#. ($TicketObj->Id) -msgid "Modify ticket #%1" -msgstr "Modificar o tíquete #%1" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "Modify tickets" -msgstr "Modificar tíquetes" - -#: html/Admin/CustomFields/UserRights.html:159 -#. ($CustomFieldObj->Name) -msgid "Modify user rights for custom field %1" -msgstr "Modificar direitos de usuário para campo customizado %1" - -#: html/Admin/Groups/UserRights.html:48 html/Admin/Groups/UserRights.html:52 html/Admin/Groups/UserRights.html:58 -#. ($GroupObj->Name) -msgid "Modify user rights for group %1" -msgstr "Modificar os direitos de acesso de usuário para o grupo %1" - -#: html/Admin/Queues/UserRights.html:48 html/Admin/Queues/UserRights.html:52 -#. ($QueueObj->Name) -msgid "Modify user rights for queue %1" -msgstr "Modificar os direitos de acesso de usuário para a fila %1" - -#: NOT FOUND IN SOURCE -msgid "Modify watchers for queue '%1'" -msgstr "Modificar os observadores para a fila '%1'" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "ModifyACL" -msgstr "ModificarACL" - -#: lib/RT/CustomField_Overlay.pm:110 -msgid "ModifyCustomField" -msgstr "ModificarCampoPersonalizado" - -#: lib/RT/Group_Overlay.pm:168 -msgid "ModifyOwnMembership" -msgstr "ModificarFiliaçãoPrópria" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "ModifyQueueWatchers" -msgstr "ModificarObservadoresdaFila" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "ModifyScrips" -msgstr "ModificarScrips" - -#: lib/RT/System.pm:84 -msgid "ModifySelf" -msgstr "AutoModificar-se" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "ModifyTemplate" -msgstr "ModificarModelo" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "ModifyTicket" -msgstr "ModificarTiquete" - -#: lib/RT/Date.pm:419 -msgid "Mon." -msgstr "Seg." - -#: html/Ticket/Elements/ShowRequestor:63 -#. ($name) -msgid "More about %1" -msgstr "Mais sobre %1" - -#: html/Admin/Elements/PickCustomFields:85 -msgid "Move down" -msgstr "Descer" - -#: html/Admin/Elements/PickCustomFields:77 -msgid "Move up" -msgstr "Subir" - -#: html/Admin/Elements/SelectSingleOrMultiple:50 -msgid "Multiple" -msgstr "Múltiplo" - -#: lib/RT/User_Overlay.pm:228 -msgid "Must specify 'Name' attribute" -msgstr "Necessário especificar atributo 'Nome'" - -#: html/SelfService/Elements/MyRequests:79 -#. ($friendly_status) -msgid "My %1 tickets" -msgstr "Meus %1 primeiros tíquetes" - -#: NOT FOUND IN SOURCE -msgid "My Approvals" -msgstr "Minhas Aprovações" - -#: html/Tools/Elements/Tabs:65 -msgid "My Day" -msgstr "Meu Dia" - -#: html/Approvals/index.html:48 html/Approvals/index.html:49 -msgid "My approvals" -msgstr "Minhas aprovações" - -#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 -msgid "My saved searches" -msgstr "Minhas buscas salvas" - -#: html/Admin/CustomFields/Modify.html:60 html/Admin/Elements/AddCustomFieldValue:55 html/Admin/Elements/EditCustomField:57 html/Admin/Elements/EditCustomFieldValues:57 html/Admin/Elements/ModifyTemplate:51 html/Admin/Groups/Modify.html:67 html/Search/Bulk.html:159 html/User/Groups/Modify.html:67 -msgid "Name" -msgstr "Nome" - -#: lib/RT/User_Overlay.pm:235 -msgid "Name in use" -msgstr "Nome em uso" - -#: NOT FOUND IN SOURCE -msgid "Need approval from system administrator" -msgstr "Precisa de aprovação do administrador do sistema" - -#: html/Ticket/Elements/ShowDates:75 -msgid "Never" -msgstr "Nunca" - -#: NOT FOUND IN SOURCE -msgid "New" -msgstr "Novo" - -#: html/Elements/EditLinks:118 -msgid "New Links" -msgstr "Novos Vínculos" - -#: html/Admin/Users/Modify.html:121 html/User/Prefs.html:111 -msgid "New Password" -msgstr "Nova Senha" - -#: etc/initialdata:332 -msgid "New Pending Approval" -msgstr "Nova Aprovação Pendente" - -#: html/Ticket/Elements/Tabs:214 -msgid "New Search" -msgstr "Nova busca" - -#: html/Admin/Elements/CustomFieldTabs:95 html/Admin/Queues/CustomField.html:75 -msgid "New custom field" -msgstr "Novo campo personalizado" - -#: html/Admin/Elements/GroupTabs:79 html/User/Elements/GroupTabs:75 -msgid "New group" -msgstr "Novo grupo" - -#: html/SelfService/Prefs.html:55 -msgid "New password" -msgstr "Nova senha" - -#: lib/RT/User_Overlay.pm:818 -msgid "New password notification sent" -msgstr "Notificação de nova senha enviada" - -#: html/Admin/Elements/QueueTabs:97 -msgid "New queue" -msgstr "Nova fila" - -#: html/Ticket/Elements/Reminders:120 -msgid "New reminder:" -msgstr "Novo lembrete:" - -#: NOT FOUND IN SOURCE -msgid "New request" -msgstr "Nova requisição" - -#: html/Admin/Elements/SelectRights:67 -msgid "New rights" -msgstr "Novos direitos de acesso" - -#: html/Admin/Global/Scrip.html:65 html/Admin/Global/Scrips.html:62 html/Admin/Queues/Scrip.html:73 html/Admin/Queues/Scrips.html:78 -msgid "New scrip" -msgstr "Novo scrip" - -#: NOT FOUND IN SOURCE -msgid "New search" -msgstr "Nova busca" - -#: html/Admin/Global/Template.html:83 html/Admin/Global/Templates.html:62 html/Admin/Queues/Template.html:81 html/Admin/Queues/Templates.html:73 -msgid "New template" -msgstr "Novo modelo" - -#: html/SelfService/Elements/Tabs:87 html/SelfService/Elements/Tabs:91 -msgid "New ticket" -msgstr "Novo tíquete" - -#: lib/RT/Ticket_Overlay.pm:2760 -msgid "New ticket doesn't exist" -msgstr "O novo tíquete não existe" - -#: html/Admin/Elements/UserTabs:83 -msgid "New user" -msgstr "Novo usuário" - -#: html/Admin/Elements/CreateUserCalled:49 -msgid "New user called" -msgstr "Novo usuário chamado" - -#: html/Admin/Queues/People.html:78 html/Ticket/Elements/EditPeople:52 -msgid "New watchers" -msgstr "Novos observadores" - -#: NOT FOUND IN SOURCE -msgid "New window setting" -msgstr "Abrir nova janela" - -#: html/Helpers/CalPopup.html:60 html/Ticket/Elements/Tabs:94 -msgid "Next" -msgstr "Próximo" - -#: html/Elements/TicketList:108 -msgid "Next Page" -msgstr "Próxima Página" - -#: NOT FOUND IN SOURCE -msgid "Next page" -msgstr "Próxima página" - -#: NOT FOUND IN SOURCE -msgid "NickName" -msgstr "Apelido" - -#: html/Admin/Users/Modify.html:86 html/User/Prefs.html:74 -msgid "Nickname" -msgstr "Apelido" - -#: html/Admin/CustomFields/UserRights.html:147 -msgid "No Class defined" -msgstr "Nenhuma Classe definida" - -#: html/Admin/CustomFields/Modify.html:168 html/Admin/Elements/EditCustomField:121 -msgid "No CustomField" -msgstr "Não há Campo Personalizado" - -#: html/Admin/CustomFields/GroupRights.html:105 -msgid "No CustomField defined" -msgstr "Nenhum Campo Personalizado definido" - -#: html/Admin/Groups/GroupRights.html:107 html/Admin/Groups/UserRights.html:94 -msgid "No Group defined" -msgstr "Não há Grupo definido" - -#: lib/RT/Tickets_Overlay_SQL.pm:484 -msgid "No Query" -msgstr "Nenhuma Consulta" - -#: html/Admin/Queues/GroupRights.html:120 html/Admin/Queues/UserRights.html:91 -msgid "No Queue defined" -msgstr "Não há Fila definida" - -#: bin/rt-crontool:75 -msgid "No RT user found. Please consult your RT administrator.\\n" -msgstr "Nenhum usuário RT foi encontrado. Favor consultar o administrador do RT.\\n" - -#: html/Admin/Global/Template.html:102 html/Admin/Queues/Template.html:99 -msgid "No Template" -msgstr "Não há Modelo" - -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket " -msgstr "Não há Tíquete especificado. Abortando o tíquete " - -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket modifications\\n\\n" -msgstr "Não há Tíquete especificado. Abortando modificações no tíquete\\n\\n" - -#: html/Approvals/Elements/Approve:79 -msgid "No action" -msgstr "Não há ação" - -#: lib/RT/Record.pm:966 -msgid "No column specified" -msgstr "Não há coluna especificada" - -#: NOT FOUND IN SOURCE -msgid "No command found\\n" -msgstr "Comando não encontrado\\n" - -#: html/Ticket/Elements/ShowRequestor:70 -msgid "No comment entered about this user" -msgstr "Não há comentário sobre este usuário" - -#: NOT FOUND IN SOURCE -msgid "No correspondence attached" -msgstr "Não há nenhum arquivo anexado" - -#: lib/RT/Action/Generic.pm:187 lib/RT/Condition/Generic.pm:199 lib/RT/Search/ActiveTicketsInQueue.pm:79 lib/RT/Search/Generic.pm:136 lib/RT/Search/Googleish.pm:90 -#. (ref $self) -msgid "No description for %1" -msgstr "Não há descrição para %1" - -#: lib/RT/Users_Overlay.pm:192 -msgid "No group specified" -msgstr "Não há grupo especificado" - -#: html/Admin/Groups/index.html:54 -msgid "No groups matching search criteria found." -msgstr "Nenhum grupo satisfaz o critério de busca." - -#: lib/RT/Ticket_Overlay.pm:2395 -msgid "No message attached" -msgstr "Nenhuma mensagem anexada" - -#: lib/RT/User_Overlay.pm:1036 -msgid "No password set" -msgstr "Não há senha especificada" - -#: lib/RT/Queue_Overlay.pm:363 -msgid "No permission to create queues" -msgstr "Não há permissão para criar filas" - -#: lib/RT/Ticket_Overlay.pm:422 -#. ($QueueObj->Name) -msgid "No permission to create tickets in the queue '%1'" -msgstr "Sem permissão para criar tíquetes na fila '%1'" - -#: lib/RT/User_Overlay.pm:188 -msgid "No permission to create users" -msgstr "Sem permissão para criar usuários" - -#: html/SelfService/Display.html:210 -msgid "No permission to display that ticket" -msgstr "Sem permissão para mostrar o tíquete" - -#: lib/RT/SavedSearch.pm:158 -msgid "No permission to save system-wide searches" -msgstr "Sem permissão para salvar buscas com abrangência em todo sistema" - -#: html/SelfService/Update.html:119 -msgid "No permission to view update ticket" -msgstr "sem permissão para ver modificar o tíquete" - -#: lib/RT/Queue_Overlay.pm:797 lib/RT/Ticket_Overlay.pm:1491 -msgid "No principal specified" -msgstr "Não há usuário/grupo especificado" - -#: html/Admin/Queues/People.html:177 html/Admin/Queues/People.html:187 -msgid "No principals selected." -msgstr "Não há usuário/grupo selecionado." - -#: html/Admin/Queues/index.html:59 -msgid "No queues matching search criteria found." -msgstr "Nenhuma fila satisfaz o critério de busca." - -#: html/Admin/Elements/SelectRights:108 -msgid "No rights found" -msgstr "Nenhum direito encontrado" - -#: html/Admin/Elements/SelectRights:55 -msgid "No rights granted." -msgstr "Nenhum direito outorgado." - -#: lib/RT/SavedSearch.pm:198 -msgid "No search loaded" -msgstr "Nenhuma busca carregada" - -#: html/Search/Bulk.html:234 -msgid "No search to operate on." -msgstr "Não há busca a realizar" - -#: html/Elements/RT__Ticket/ColumnMap:139 html/Search/Results.rdf:80 -msgid "No subject" -msgstr "Sem assunto" - -#: NOT FOUND IN SOURCE -msgid "No ticket id specified" -msgstr "Nenhum identificador de tíquete especificado" - -#: html/Search/Chart:101 -msgid "No tickets found." -msgstr "Nenhum tíquete encontrado." - -#: lib/RT/Transaction_Overlay.pm:549 lib/RT/Transaction_Overlay.pm:586 -msgid "No transaction type specified" -msgstr "Não há tipo de transação especificada" - -#: NOT FOUND IN SOURCE -msgid "No user or email address specified" -msgstr "Não há usuário ou endereço de e-mail especificado" - -#: html/Admin/Users/index.html:57 -msgid "No users matching search criteria found." -msgstr "Nenhum usuário satisfaz o critério de busca." - -#: lib/RT/Record.pm:963 -msgid "No value sent to _Set!\\n" -msgstr "Nenhum valor enviado a _Set!\\n" - -#: html/Elements/QuickCreate:61 -msgid "Nobody" -msgstr "Ninguém" - -#: lib/RT/Record.pm:968 -msgid "Nonexistant field?" -msgstr "Campo inexistente?" - -#: html/Search/Chart:149 html/Search/Elements/Chart:90 -msgid "Not Set" -msgstr "Nao Definido" - -#: NOT FOUND IN SOURCE -msgid "Not logged in" -msgstr "Não logado" - -#: html/Elements/Header:98 -msgid "Not logged in." -msgstr "Não entrou." - -#: lib/RT/Date.pm:399 -msgid "Not set" -msgstr "Não definido" - -#: html/NoAuth/Reminder.html:50 -msgid "Not yet implemented." -msgstr "Ainda não implementado." - -#: NOT FOUND IN SOURCE -msgid "Not yet implemented...." -msgstr "Ainda não implementado..." - -#: html/Approvals/Elements/Approve:83 -msgid "Notes" -msgstr "Anotações" - -#: lib/RT/User_Overlay.pm:821 -msgid "Notification could not be sent" -msgstr "A notificação não pôde ser enviada" - -#: etc/initialdata:101 -msgid "Notify AdminCcs" -msgstr "Notificar AdminCcs" - -#: etc/initialdata:97 -msgid "Notify AdminCcs as Comment" -msgstr "Notificar AdminCcs como Comentário" - -#: etc/initialdata:93 etc/upgrade/3.1.17/content:6 -msgid "Notify Ccs" -msgstr "Notificar Ccs" - -#: etc/initialdata:89 etc/upgrade/3.1.17/content:2 -msgid "Notify Ccs as Comment" -msgstr "Notificar Ccs como Comentário" - -#: etc/initialdata:128 -msgid "Notify Other Recipients" -msgstr "Notificar Outros Destinatários" - -#: etc/initialdata:124 -msgid "Notify Other Recipients as Comment" -msgstr "Notificar Outros Destinatários como Comentário" - -#: etc/initialdata:85 -msgid "Notify Owner" -msgstr "Notificar Proprietário" - -#: etc/initialdata:81 -msgid "Notify Owner as Comment" -msgstr "Notificar Proprietário como Comentário" - -#: etc/initialdata:376 -msgid "Notify Owner of their rejected ticket" -msgstr "Notificar Proprietário sobre seus tíquetes rejeitados" - -#: etc/initialdata:365 -msgid "Notify Owner of their ticket has been approved by all approvers" -msgstr "Notificar Proprietário que todas as aprovações foram concedidas a seu tíquete" - -#: etc/initialdata:353 -msgid "Notify Owner of their ticket has been approved by some approver" -msgstr "Notificar Proprietário que seu alguma aprovação foi concedida a seu tíquete" - -#: etc/initialdata:334 -msgid "Notify Owners and AdminCcs of new items pending their approval" -msgstr "" -"Notificar Proprietários e AdminCcs sobre novos itens dependendo de suas " -"aprovações" - -#: etc/initialdata:77 -msgid "Notify Requestors" -msgstr "Notificar Requisitantes" - -#: etc/initialdata:111 -msgid "Notify Requestors and Ccs" -msgstr "Notificar Requisitantes e Ccs" - -#: etc/initialdata:106 -msgid "Notify Requestors and Ccs as Comment" -msgstr "Notificar Requisitantes e Ccs como Comentário" - -#: etc/initialdata:120 -msgid "Notify Requestors, Ccs and AdminCcs" -msgstr "Notificar Requisitantes, Ccs e AdminCcs" - -#: etc/initialdata:116 -msgid "Notify Requestors, Ccs and AdminCcs as Comment" -msgstr "Notificar Requisitantes, Ccs e AdminCcs como Comentário" - -#: lib/RT/Date.pm:453 -msgid "Nov." -msgstr "Nov." - -#: NOT FOUND IN SOURCE -msgid "November" -msgstr "Novembro" - -#: html/Search/Elements/SelectAndOr:49 -msgid "OR" -msgstr "OU" - -#: lib/RT/Record.pm:329 -msgid "Object could not be created" -msgstr "Objeto não pôde ser criado" - -#: lib/RT/Record.pm:130 -msgid "Object could not be deleted" -msgstr "Objeto não pode ser removido" - -#: lib/RT/Record.pm:348 -msgid "Object created" -msgstr "Objeto criado" - -#: lib/RT/Record.pm:127 -msgid "Object deleted" -msgstr "Objeto removido" - -#: html/Admin/CustomFields/Objects.html:74 html/Admin/Elements/ObjectCustomFields:65 -#. ($ObjectType) -#. ($LookupType) -msgid "Object of type %1 cannot take custom fields" -msgstr "Objeto do tipo %1 não aceitam campos customizados" - -#: lib/RT/CustomField_Overlay.pm:970 -msgid "Object type mismatch" -msgstr "Tipo de objeto não corresponde" - -#: lib/RT/Date.pm:452 -msgid "Oct." -msgstr "Out." - -#: NOT FOUND IN SOURCE -msgid "October" -msgstr "Outubro" - -#: html/Tools/Elements/Tabs:57 -msgid "Offline" -msgstr "Offline" - -#: html/Tools/Offline.html:51 -msgid "Offline edits" -msgstr "Edições offline" - -#: html/Tools/Offline.html:48 -msgid "Offline upload" -msgstr "Envio offline" - -#: html/Elements/SelectDateRelation:58 -msgid "On" -msgstr "Em" - -#: lib/RT/Transaction_Overlay.pm:349 -#. ($self->CreatedAsString(), $self->CreatorObj->Name()) -msgid "On %1, %2 wrote:" -msgstr "Em %1, %2 escreveu:" - -#: etc/initialdata:163 -msgid "On Comment" -msgstr "Num Comentário" - -#: etc/initialdata:156 -msgid "On Correspond" -msgstr "Numa Correspondência" - -#: etc/initialdata:145 -msgid "On Create" -msgstr "Na Criação" - -#: etc/initialdata:184 -msgid "On Owner Change" -msgstr "Na Mudança de Proprietário" - -#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 -msgid "On Priority Change" -msgstr "Na Mudança de Prioridade" - -#: etc/initialdata:192 -msgid "On Queue Change" -msgstr "Na Mudança de Fila" - -#: etc/initialdata:198 -msgid "On Resolve" -msgstr "Na Resolução" - -#: etc/initialdata:169 -msgid "On Status Change" -msgstr "Na Mudança de Estado" - -#: etc/initialdata:150 -msgid "On Transaction" -msgstr "Numa Transação" - -#: html/Approvals/Elements/PendingMyApproval:72 -#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter' id='CreatedAfter' />") -msgid "Only show approvals for requests created after %1" -msgstr "Só mostrar aprovações para requisições criadas depois de %1" - -#: html/Approvals/Elements/PendingMyApproval:70 -#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore' id='CreatedBefore' />") -msgid "Only show approvals for requests created before %1" -msgstr "Só mostrar aprovações para requisições criadas antes de %1" - -#: html/Admin/CustomFields/index.html:77 -msgid "Only show custom fields for:" -msgstr "Somente mostrar campos personalizados para:" - -#: NOT FOUND IN SOURCE -msgid "Open" -msgstr "Aberto" - -#: etc/initialdata:139 -msgid "Open Tickets" -msgstr "Abrir Tíquetes" - -#: html/Ticket/Elements/Tabs:162 -msgid "Open it" -msgstr "Abrir" - -#: NOT FOUND IN SOURCE -msgid "Open requests" -msgstr "Requisições abertas" - -#: html/SelfService/Elements/Tabs:78 html/SelfService/index.html:48 -msgid "Open tickets" -msgstr "Abrir tíquetes" - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in a new window" -msgstr "Abrir tíquetes (da listagem) em uma nova janela" - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in another window" -msgstr "Abrir tíquetes (da listagem) em outra janela" - -#: etc/initialdata:140 -msgid "Open tickets on correspondence" -msgstr "Abrir tíquetes na correspondência" - -#: html/Prefs/MyRT.html:72 -msgid "Options" -msgstr "Opções" - -#: html/Search/Elements/DisplayOptions:61 -msgid "Order by" -msgstr "Ordenado por" - -#: NOT FOUND IN SOURCE -msgid "Ordering and sorting" -msgstr "Requisitando e ordenando" - -#: html/Admin/Users/Modify.html:144 html/User/Prefs.html:131 -msgid "Organization" -msgstr "Organização" - -#: html/Approvals/Elements/Approve:55 -#. ($approving->Id, $approving->Subject) -msgid "Originating ticket: #%1" -msgstr "Tíquete originador: #%1" - -#: lib/RT/Transaction_Overlay.pm:643 -msgid "Outgoing email about a comment recorded" -msgstr "E-mail de saida sobre um comentário gravado" - -#: lib/RT/Transaction_Overlay.pm:647 -msgid "Outgoing email recorded" -msgstr "E-mail de saida gravado" - -#: html/Admin/Queues/Modify.html:92 -msgid "Over time, priority moves toward" -msgstr "Após a data, a prioridade tende a" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "Own tickets" -msgstr "Próprios tíquetes" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "OwnTicket" -msgstr "OwnTicket" - -#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:103 html/Ticket/Create.html:74 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/EditPeople:66 html/Ticket/Elements/EditPeople:67 html/Ticket/Elements/Reminders:131 html/Ticket/Elements/ShowPeople:50 html/Ticket/Update.html:64 lib/RT/ACE_Overlay.pm:112 lib/RT/Tickets_Overlay.pm:2122 -msgid "Owner" -msgstr "Proprietário" - -#: NOT FOUND IN SOURCE -msgid "Owner changed from %1 to %2" -msgstr "Proprietário mudou de %1 para %2" - -#: lib/RT/Ticket_Overlay.pm:507 -msgid "Owner could not be set." -msgstr "Proprietário não pode ser definido." - -#: lib/RT/Transaction_Overlay.pm:693 -#. ($Old->Name , $New->Name) -msgid "Owner forcibly changed from %1 to %2" -msgstr "Proprietário mudado à força de %1 para %2" - -#: NOT FOUND IN SOURCE -msgid "Owner is" -msgstr "O proprietário é" - -#: html/Elements/TicketList:82 -#. ($Page, $pages) -msgid "Page %1 of %2" -msgstr "Página %1 de %2" - -#: html/Admin/Users/Modify.html:201 html/User/Prefs.html:98 -msgid "Pager" -msgstr "Pager" - -#: NOT FOUND IN SOURCE -msgid "PagerPhone" -msgstr "Telefone do Pager" - -#: NOT FOUND IN SOURCE -msgid "Parent" -msgstr "Pai" - -#: html/Elements/EditLinks:145 html/Elements/EditLinks:77 html/Elements/ShowLinks:70 html/Ticket/Create.html:224 html/Ticket/Elements/BulkLinks:62 -msgid "Parents" -msgstr "Pais" - -#: html/Elements/Login:97 html/User/Prefs.html:107 -msgid "Password" -msgstr "Senha" - -#: html/NoAuth/Reminder.html:48 -msgid "Password Reminder" -msgstr "Lembrete de Senha" - -#: lib/RT/Transaction_Overlay.pm:802 lib/RT/User_Overlay.pm:1047 -msgid "Password changed" -msgstr "Senha trocada" - -#: lib/RT/User_Overlay.pm:1039 lib/RT/User_Overlay.pm:216 -#. ($RT::MinimumPasswordLength) -msgid "Password needs to be at least %1 characters long" -msgstr "Senhas precisam ter no mínimo %1 caracteres" - -#: lib/RT/User_Overlay.pm:1046 -msgid "Password set" -msgstr "Senha definida" - -#: NOT FOUND IN SOURCE -msgid "Password too short" -msgstr "Senha muito curta" - -#: html/User/Prefs.html:242 -#. (loc_fuzzy($msg)) -msgid "Password: %1" -msgstr "Senha: %1" - -#: lib/RT/User_Overlay.pm:1032 -msgid "Password: Permission Denied" -msgstr "Senha: Permissão Negada" - -#: html/Admin/Users/Modify.html:368 -msgid "Passwords do not match." -msgstr "Senhas não coincidem." - -#: html/User/Prefs.html:244 -msgid "Passwords do not match. Your password has not been changed" -msgstr "Senhas não coincidem. Sua senha não foi mudada" - -#: html/Ticket/Elements/ShowSummary:64 html/Ticket/Elements/Tabs:121 html/Ticket/ModifyAll.html:74 -msgid "People" -msgstr "Pessoas" - -#: etc/initialdata:133 -msgid "Perform a user-defined action" -msgstr "Realizar uma ação definida pelo usuário" - -#: html/Admin/Tools/Configuration.html:96 -msgid "Perl configuration" -msgstr "Configuração perl" - -#: lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:582 lib/RT/ACE_Overlay.pm:592 lib/RT/ACE_Overlay.pm:602 lib/RT/ACE_Overlay.pm:667 lib/RT/Attribute_Overlay.pm:160 lib/RT/Attribute_Overlay.pm:166 lib/RT/Attribute_Overlay.pm:407 lib/RT/Attribute_Overlay.pm:416 lib/RT/Attribute_Overlay.pm:429 lib/RT/CurrentUser.pm:118 lib/RT/CurrentUser.pm:127 lib/RT/CustomField_Overlay.pm:1020 lib/RT/CustomField_Overlay.pm:1141 lib/RT/CustomField_Overlay.pm:1284 lib/RT/CustomField_Overlay.pm:174 lib/RT/CustomField_Overlay.pm:191 lib/RT/CustomField_Overlay.pm:202 lib/RT/CustomField_Overlay.pm:377 lib/RT/CustomField_Overlay.pm:406 lib/RT/CustomField_Overlay.pm:766 lib/RT/CustomField_Overlay.pm:939 lib/RT/CustomField_Overlay.pm:974 lib/RT/Group_Overlay.pm:1119 lib/RT/Group_Overlay.pm:1123 lib/RT/Group_Overlay.pm:1132 lib/RT/Group_Overlay.pm:1242 lib/RT/Group_Overlay.pm:1246 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:447 lib/RT/Group_Overlay.pm:544 lib/RT/Group_Overlay.pm:622 lib/RT/Group_Overlay.pm:630 lib/RT/Group_Overlay.pm:728 lib/RT/Group_Overlay.pm:732 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:924 lib/RT/Group_Overlay.pm:928 lib/RT/Group_Overlay.pm:941 lib/RT/Queue_Overlay.pm:1056 lib/RT/Queue_Overlay.pm:142 lib/RT/Queue_Overlay.pm:160 lib/RT/Queue_Overlay.pm:659 lib/RT/Queue_Overlay.pm:669 lib/RT/Queue_Overlay.pm:683 lib/RT/Queue_Overlay.pm:821 lib/RT/Queue_Overlay.pm:830 lib/RT/Queue_Overlay.pm:843 lib/RT/Scrip_Overlay.pm:151 lib/RT/Scrip_Overlay.pm:162 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:110 lib/RT/Template_Overlay.pm:279 lib/RT/Ticket_Overlay.pm:1359 lib/RT/Ticket_Overlay.pm:1369 lib/RT/Ticket_Overlay.pm:1383 lib/RT/Ticket_Overlay.pm:1524 lib/RT/Ticket_Overlay.pm:1534 lib/RT/Ticket_Overlay.pm:1548 lib/RT/Ticket_Overlay.pm:1665 lib/RT/Ticket_Overlay.pm:1985 lib/RT/Ticket_Overlay.pm:2128 lib/RT/Ticket_Overlay.pm:2298 lib/RT/Ticket_Overlay.pm:2348 lib/RT/Ticket_Overlay.pm:2528 lib/RT/Ticket_Overlay.pm:2541 lib/RT/Ticket_Overlay.pm:2617 lib/RT/Ticket_Overlay.pm:2630 lib/RT/Ticket_Overlay.pm:2751 lib/RT/Ticket_Overlay.pm:2765 lib/RT/Ticket_Overlay.pm:3016 lib/RT/Ticket_Overlay.pm:3027 lib/RT/Ticket_Overlay.pm:3033 lib/RT/Ticket_Overlay.pm:3250 lib/RT/Ticket_Overlay.pm:3254 lib/RT/Ticket_Overlay.pm:3397 lib/RT/Ticket_Overlay.pm:3525 lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:544 lib/RT/Transaction_Overlay.pm:572 lib/RT/Transaction_Overlay.pm:579 lib/RT/User_Overlay.pm:1178 lib/RT/User_Overlay.pm:1858 lib/RT/User_Overlay.pm:371 lib/RT/User_Overlay.pm:737 lib/RT/User_Overlay.pm:776 -msgid "Permission Denied" -msgstr "Permissão Negada" - -#: lib/RT/Template_Overlay.pm:240 lib/RT/Template_Overlay.pm:249 -msgid "Permission denied" -msgstr "Permissão negada" - -#: lib/RT/Template_Overlay.pm:379 -msgid "Permissions denied" -msgstr "Permissões negadas" - -#: html/User/Elements/Tabs:58 -msgid "Personal Groups" -msgstr "Grupos Pessoais" - -#: html/User/Groups/index.html:53 html/User/Groups/index.html:63 -msgid "Personal groups" -msgstr "Grupos pessoais" - -#: html/User/Elements/DelegateRights:60 -msgid "Personal groups:" -msgstr "Grupos pessoais:" - -#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:83 -msgid "Phone numbers" -msgstr "Telefones" - -#: html/Elements/Header:95 html/Elements/Tabs:94 html/SelfService/Elements/Tabs:98 html/SelfService/Prefs.html:48 html/User/Prefs.html:48 html/User/Prefs.html:51 -msgid "Preferences" -msgstr "Preferências" - -#: html/Admin/Users/MyRT.html:122 -#. ($pane, $UserObj->Name) -msgid "Preferences %1 for user %2 ." -msgstr "Preferências %1 para usuário %2." - -#: html/Prefs/MyRT.html:143 -#. ($pane) -msgid "Preferences saved for %1." -msgstr "Preferências salvas para %1." - -#: NOT FOUND IN SOURCE -msgid "Prefs" -msgstr "Prefs" - -#: lib/RT/Action/Generic.pm:197 -msgid "Prepare Stubbed" -msgstr "Preparação Abortada" - -#: html/Helpers/CalPopup.html:58 html/Ticket/Elements/Tabs:86 -msgid "Prev" -msgstr "Anterior" - -#: html/Elements/TicketList:105 -msgid "Previous Page" -msgstr "Página Anterior" - -#: NOT FOUND IN SOURCE -msgid "Previous page" -msgstr "Página anterior" - -#: lib/RT/ACE_Overlay.pm:159 lib/RT/ACE_Overlay.pm:241 lib/RT/ACE_Overlay.pm:571 -#. ($args{'PrincipalId'}) -msgid "Principal %1 not found." -msgstr "Usuário/Grupo %1 não encontrado." - -#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:183 html/Ticket/Elements/EditBasics:94 html/Ticket/Elements/ShowBasics:74 lib/RT/Tickets_Overlay.pm:1906 -msgid "Priority" -msgstr "Prioridade" - -#: html/Admin/Queues/Modify.html:88 -msgid "Priority starts at" -msgstr "A prioridade inicia em" - -#: html/Search/Elements/EditSearches:52 -msgid "Privacy:" -msgstr "Privacidade:" - -#: etc/initialdata:25 -msgid "Privileged" -msgstr "Privilegiado" - -#: html/Admin/Users/Modify.html:346 html/User/Prefs.html:233 -#. (loc_fuzzy($msg)) -msgid "Privileged status: %1" -msgstr "Estado privilegiado: %1" - -#: html/Admin/Users/index.html:104 -msgid "Privileged users" -msgstr "Usuários privilegiados" - -#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 -msgid "Pseudogroup for internal use" -msgstr "Falso-grupo para uso interno" - -#: html/Search/Build.html:123 -msgid "Query Builder" -msgstr "Construtor de Consulta" - -#: html/Search/Elements/Chart:103 -msgid "Query:" -msgstr "Consulta:" - -#: html/Elements/QueueSummary:50 html/Elements/QuickCreate:56 html/Search/Elements/PickBasics:73 html/SelfService/Create.html:56 html/Ticket/Create.html:64 html/Ticket/Elements/EditBasics:59 html/Ticket/Elements/ShowBasics:78 html/Tools/Reports/CreatedByDates.html:87 html/Tools/Reports/ResolvedByDates.html:88 html/Tools/Reports/ResolvedByOwner.html:68 html/User/Elements/DelegateRights:103 lib/RT/Tickets_Overlay.pm:1733 -msgid "Queue" -msgstr "Fila" - -#: html/Admin/Queues/CustomField.html:65 html/Admin/Queues/Scrip.html:63 html/Admin/Queues/Scrips.html:71 html/Admin/Queues/Templates.html:67 -#. ($id) -#. ($Queue) -msgid "Queue %1 not found" -msgstr "Fila %1 não encontrada" - -#: NOT FOUND IN SOURCE -msgid "Queue '%1' not found\\n" -msgstr "A fila '%1' não foi encontrada\\n" - -#: NOT FOUND IN SOURCE -msgid "Queue Keyword Selections" -msgstr "Seleções de Palavras-chave da Fila" - -#: html/Admin/Queues/Modify.html:66 -msgid "Queue Name" -msgstr "Nome da Fila" - -#: NOT FOUND IN SOURCE -msgid "Queue Scrips" -msgstr "Scrips da Fila" - -#: lib/RT/Queue_Overlay.pm:367 -msgid "Queue already exists" -msgstr "A fila já existe" - -#: lib/RT/Queue_Overlay.pm:376 lib/RT/Queue_Overlay.pm:382 -msgid "Queue could not be created" -msgstr "A fila não pôde ser criada" - -#: html/Ticket/Create.html:318 lib/t/regression/01ticket_link_searching.t:17 -msgid "Queue could not be loaded." -msgstr "A fila não pôde ser carregada" - -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:386 lib/RT/StyleGuide.pod:807 -msgid "Queue created" -msgstr "Fila criada" - -#: NOT FOUND IN SOURCE -msgid "Queue is not specified." -msgstr "A fila não foi especificada." - -#: html/SelfService/Display.html:128 lib/RT/CustomField_Overlay.pm:199 -msgid "Queue not found" -msgstr "Fila não encontrada" - -#: html/Admin/Elements/Tabs:61 html/Admin/index.html:74 -msgid "Queues" -msgstr "Filas" - -#: html/Elements/MyAdminQueues:48 -msgid "Queues I administer" -msgstr "Filas que eu administro" - -#: html/Elements/MySupportQueues:48 -msgid "Queues I'm an AdminCc for" -msgstr "Filas nas quais sou AdminCc" - -#: html/Elements/Quicksearch:49 html/Prefs/Elements/Tabs:60 html/Prefs/Quicksearch.html:72 -msgid "Quick search" -msgstr "Busca rápida" - -#: html/Elements/QuickCreate:49 -msgid "Quick ticket creation" -msgstr "Criação rápida de tíquete" - -#: html/Search/Results.html:83 -msgid "RSS" -msgstr "RSS" - -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:794 -#. ($RT::VERSION, $RT::rtname) -msgid "RT %1 for %2" -msgstr "RT %1 para %2" - -#: NOT FOUND IN SOURCE -msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" -msgstr "" -"RT %1. Direitos reservados 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>" -"\\n" - -#: NOT FOUND IN SOURCE -msgid "RT %1. Copyright 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" -msgstr "" -"RT %1. Direitos reservados 1996-2002 Jesse Vincent <jesse\\\\@bestpractical." -"com>\\\\n" - -#: html/Admin/index.html:48 html/Admin/index.html:49 -msgid "RT Administration" -msgstr "Administração do RT" - -#: NOT FOUND IN SOURCE -msgid "RT Authentication error." -msgstr "Erro de autenticação no RT." - -#: NOT FOUND IN SOURCE -msgid "RT Bounce: %1" -msgstr "Ricochete do RT: %1" - -#: NOT FOUND IN SOURCE -msgid "RT Configuration error" -msgstr "Erro de configuração do RT" - -#: NOT FOUND IN SOURCE -msgid "RT Critical error. Message not recorded!" -msgstr "Erro crítico no RT. A mensagem não foi registrada!" - -#: html/Elements/Error:65 html/SelfService/Error.html:64 -msgid "RT Error" -msgstr "Erro no RT" - -#: NOT FOUND IN SOURCE -msgid "RT Received mail (%1) from itself." -msgstr "O RT recebeu e-mail (%1) dele mesmo." - -#: NOT FOUND IN SOURCE -msgid "RT Recieved mail (%1) from itself." -msgstr "O RT recebeu e-mail (%1) dele mesmo." - -#: html/SelfService/Elements/Tabs:72 html/SelfService/Elements/Tabs:74 -msgid "RT Self Service" -msgstr "Auto-Serviço RT" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service / Closed Tickets" -msgstr "Auto-serviço do RT / Tíquetes Fechados" - -#: html/Admin/Tools/Configuration.html:75 -msgid "RT Variables" -msgstr "Variáveis RT" - -#: html/Admin/Elements/SystemTabs:73 html/Admin/Elements/UserTabs:69 html/Admin/Global/MyRT.html:48 html/Admin/Global/MyRT.html:51 html/Admin/Global/MyRT.html:59 html/Admin/Global/index.html:86 html/Admin/Users/MyRT.html:68 html/Prefs/MyRT.html:68 html/Prefs/MyRT.html:80 html/User/Elements/Tabs:67 html/index.html:1 html/index.html:77 -msgid "RT at a glance" -msgstr "RT por alto" - -#: html/Admin/Users/MyRT.html:77 -#. ($UserObj->Name) -msgid "RT at a glance for the user %1" -msgstr "RT por alto para o usuário %1" - -#: html/Admin/CustomFields/Modify.html:119 -msgid "RT can include content from another web service when showing this custom field." -msgstr "RT pode incluir o conteúdo de algum outro serviço web quando estiver mostrando este campo personalizado." - -#: html/Admin/CustomFields/Modify.html:108 -msgid "RT can make this custom field's values into hyperlinks to another service." -msgstr "" -"RT pode transformar estes valores de campo customizado em hiperlinks para " -"outro serviço." - -#: NOT FOUND IN SOURCE -msgid "RT couldn't authenticate you" -msgstr "O RT não pôde autenticá-lo" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find requestor via its external database lookup" -msgstr "" -"O RT não pôde encontrar o requisitante através de consulta ao banco de dados " -"externo" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find the queue: %1" -msgstr "O RT não pôde encontrar a fila: %1" - -#: html/Elements/SetupSessionCookie:102 -msgid "RT couldn't store your session." -msgstr "RT não pode armazenar sua sessão." - -#: NOT FOUND IN SOURCE -msgid "RT couldn't validate this PGP signature. \\n" -msgstr "O RT não pôde validar esta assinatura PGP. \\n" - -#: html/Elements/Logo:51 html/Elements/PageLayout:176 -#. ($RT::rtname) -msgid "RT for %1" -msgstr "RT para %1" - -#: NOT FOUND IN SOURCE -msgid "RT for %1: %2" -msgstr "RT para %1: %2" - -#: NOT FOUND IN SOURCE -msgid "RT has proccessed your commands" -msgstr "O RT processou seus comandos" - -#: NOT FOUND IN SOURCE -msgid "RT thinks this message may be a bounce" -msgstr "O RT crê que esta mensagem seja um ricochete" - -#: html/Search/Simple.html:62 -msgid "RT will look for anything else you enter in ticket subjects." -msgstr "" -"RT vai procurar por qualquer outra coisa que você informar nos assuntos dos " -"tíquetes." - -#: NOT FOUND IN SOURCE -msgid "RT will process this message as if it were unsigned.\\n" -msgstr "O RT vai processar esta mensagem como se não fosse assinada.\\n" - -#: html/Admin/CustomFields/Modify.html:110 html/Admin/CustomFields/Modify.html:121 -msgid "RT will replace <tt>__id__</tt> and <tt>__CustomField__</tt> with the record id and custom field value, respectively" -msgstr "RT vai substituir <tt>__id__</tt> e <tt>__CustomField__</tt> respectivamente com o id do registro e o valor do campo personalizado" - -#: html/Admin/Users/Modify.html:81 html/User/Prefs.html:71 -msgid "Real Name" -msgstr "Nome real" - -#: NOT FOUND IN SOURCE -msgid "RealName" -msgstr "NomeReal" - -#: lib/RT/Transaction_Overlay.pm:746 -#. ($value) -msgid "Reference by %1 added" -msgstr "Referenciado por %1 adicionado" - -#: lib/RT/Transaction_Overlay.pm:786 -#. ($value) -msgid "Reference by %1 deleted" -msgstr "Referenciado por %1 removido" - -#: lib/RT/Transaction_Overlay.pm:743 -#. ($value) -msgid "Reference to %1 added" -msgstr "Referência a %1 adicionada" - -#: lib/RT/Transaction_Overlay.pm:783 -#. ($value) -msgid "Reference to %1 deleted" -msgstr "Referência a %1 removida" - -#: html/Elements/EditLinks:104 html/Elements/EditLinks:157 html/Elements/ShowLinks:94 html/Ticket/Create.html:227 html/Ticket/Elements/BulkLinks:74 -msgid "Referred to by" -msgstr "Referenciado por" - -#: html/Elements/EditLinks:153 html/Elements/EditLinks:95 html/Elements/SelectLinkType:51 html/Elements/ShowLinks:84 html/Ticket/Create.html:226 html/Ticket/Elements/BulkLinks:70 -msgid "Refers to" -msgstr "Faz referência a" - -#: NOT FOUND IN SOURCE -msgid "RefersTo" -msgstr "FazReferenciaA" - -#: NOT FOUND IN SOURCE -msgid "Refine" -msgstr "Refinar" - -#: NOT FOUND IN SOURCE -msgid "Refine search" -msgstr "Refinar a busca" - -#: html/Elements/Refresh:59 -#. ($value/60) -msgid "Refresh this page every %1 minutes." -msgstr "Recarregar esta página a cada %1 minutos." - -#: lib/RT/Transaction_Overlay.pm:832 -#. ($ticket->Subject) -msgid "Reminder '%1' added" -msgstr "Lembrete '%1' adicionado" - -#: lib/RT/Transaction_Overlay.pm:845 -#. ($ticket->Subject) -msgid "Reminder '%1' completed" -msgstr "Lembrete '%1' completado" - -#: lib/RT/Transaction_Overlay.pm:838 -#. ($ticket->Subject) -msgid "Reminder '%1' reopened" -msgstr "Lembrete '%1' reaberto" - -#: html/Ticket/Reminders.html:48 -#. ($Ticket->Id) -msgid "Reminder ticket #%1" -msgstr "Lembrete tíquete #%1" - -#: html/Elements/MyReminders:50 html/Ticket/Elements/ShowSummary:77 html/Ticket/Elements/Tabs:124 html/Ticket/Reminders.html:54 -msgid "Reminders" -msgstr "Lembretes" - -#: html/Ticket/Reminders.html:52 -#. ($Ticket->Id) -msgid "Reminders for ticket #%1" -msgstr "Lembretes para tíquete #%1" - -#: html/Search/Bulk.html:96 -msgid "Remove AdminCc" -msgstr "Remover AdminCc" - -#: html/Search/Bulk.html:92 -msgid "Remove Cc" -msgstr "Remover Cc" - -#: html/Search/Bulk.html:88 -msgid "Remove Requestor" -msgstr "Remover Requisitante" - -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:149 -msgid "Reply" -msgstr "Responder" - -#: html/Admin/Queues/Modify.html:74 -msgid "Reply Address" -msgstr "Endereço para Resposta" - -#: html/Search/Bulk.html:131 html/Ticket/ModifyAll.html:96 html/Ticket/Update.html:80 -msgid "Reply to requestors" -msgstr "Responder para requisitantes" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "Reply to tickets" -msgstr "Responder aos tíquetes" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "ReplyToTicket" -msgstr "ReplyToTicket" - -#: html/Tools/Elements/Tabs:61 html/Tools/Reports/index.html:48 html/Tools/Reports/index.html:49 -msgid "Reports" -msgstr "Relatórios" - -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:113 -msgid "Requestor" -msgstr "Requisitante" - -#: NOT FOUND IN SOURCE -msgid "Requestor email address" -msgstr "Endereço eletrônico do requisitante" - -#: NOT FOUND IN SOURCE -msgid "Requestor(s)" -msgstr "Requisitante(s)" - -#: NOT FOUND IN SOURCE -msgid "RequestorAddresses" -msgstr "RequestorAddresses" - -#: html/SelfService/Create.html:65 html/Ticket/Create.html:82 html/Ticket/Elements/EditPeople:71 html/Ticket/Elements/ShowPeople:54 -msgid "Requestors" -msgstr "Requisitantes" - -#: html/Admin/Queues/Modify.html:98 -msgid "Requests should be due in" -msgstr "A requisições vencem em" - -#: lib/RT/Attribute_Overlay.pm:148 -#. ('Object') -msgid "Required parameter '%1' not specified" -msgstr "Parâmetro '%1' requerido e não especificado" - -#: html/Elements/Submit:85 -msgid "Reset" -msgstr "Restaurar" - -#: html/Admin/Users/MyRT.html:62 html/Prefs/MyRT.html:62 -msgid "Reset to default" -msgstr "Voltar para padrão" - -#: html/Admin/Users/Modify.html:186 html/User/Prefs.html:86 -msgid "Residence" -msgstr "Residência" - -#: html/Ticket/Elements/Tabs:158 -msgid "Resolve" -msgstr "Resolver" - -#: html/Ticket/Update.html:158 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Resolve ticket #%1 (%2)" -msgstr "Resolver tíquete #%1 (%2)" - -#: etc/initialdata:323 html/Elements/SelectDateType:51 lib/RT/Ticket_Overlay.pm:1174 -msgid "Resolved" -msgstr "Resolvido" - -#: html/Tools/Reports/Elements/Tabs:57 -msgid "Resolved by owner" -msgstr "Resolvidos por proprietário" - -#: html/Tools/Reports/Elements/Tabs:61 -msgid "Resolved in date range" -msgstr "Resolvidos num intervalo de datas" - -#: html/Tools/Reports/ResolvedByDates.html:54 -msgid "Resolved tickets in period, grouped by owner" -msgstr "Tíquetes resolvidos no período, agrupados por proprietário" - -#: html/Tools/Reports/ResolvedByOwner.html:52 -msgid "Resolved tickets, grouped by owner" -msgstr "Tíquetes resolvidos, agrupados por proprietário" - -#: NOT FOUND IN SOURCE -msgid "Response to requestors" -msgstr "Resposta aos requisitantes" - -#: html/Elements/ListActions:48 html/Search/Elements/NewListActions:49 -msgid "Results" -msgstr "Resultados" - -#: NOT FOUND IN SOURCE -msgid "Results per page" -msgstr "Resultados por página" - -#: html/Admin/Users/Modify.html:128 html/User/Prefs.html:118 -msgid "Retype Password" -msgstr "Confirmar a Senha" - -#: html/Search/Elements/EditSearches:63 -msgid "Revert" -msgstr "Reverter" - -#: NOT FOUND IN SOURCE -msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" -msgstr "Direito de acesso %1 não encontrado para %2 %3 referente a %4 (%5)\\n" - -#: lib/RT/ACE_Overlay.pm:632 -msgid "Right Delegated" -msgstr "Direito de Acesso Delegado" - -#: lib/RT/ACE_Overlay.pm:322 -msgid "Right Granted" -msgstr "Direito de Acesso Outorgado" - -#: lib/RT/ACE_Overlay.pm:180 -msgid "Right Loaded" -msgstr "Direito de Acesso Carregado" - -#: lib/RT/ACE_Overlay.pm:697 lib/RT/ACE_Overlay.pm:718 -msgid "Right could not be revoked" -msgstr "Direito de acesso não pôde ser revogado" - -#: html/User/Delegation.html:87 -msgid "Right not found" -msgstr "Direito de acesso não encontrado" - -#: lib/RT/ACE_Overlay.pm:562 lib/RT/ACE_Overlay.pm:657 -msgid "Right not loaded." -msgstr "Direito de acesso não carregado." - -#: lib/RT/ACE_Overlay.pm:714 -msgid "Right revoked" -msgstr "Direito de acesso revogado" - -#: html/Admin/Elements/UserTabs:72 -msgid "Rights" -msgstr "Direitos de Acesso" - -#: html/Admin/CustomFields/GroupRights.html:131 lib/RT/Interface/Web.pm:987 -#. ($object_type) -msgid "Rights could not be granted for %1" -msgstr "Direitos de acesso não puderam ser outorgados a %1" - -#: html/Admin/CustomFields/GroupRights.html:158 lib/RT/Interface/Web.pm:1016 -#. ($object_type) -msgid "Rights could not be revoked for %1" -msgstr "Direitos de acesso não puderam ser revogados de %1" - -#: html/Admin/Global/GroupRights.html:74 html/Admin/Queues/GroupRights.html:76 -msgid "Roles" -msgstr "Papéis" - -#: NOT FOUND IN SOURCE -msgid "RootApproval" -msgstr "RootApproval" - -#: html/Prefs/MyRT.html:74 -msgid "Rows per box" -msgstr "Linhas por caixa" - -#: html/Search/Elements/DisplayOptions:95 -msgid "Rows per page" -msgstr "Linhas por página" - -#: lib/RT/Date.pm:424 -msgid "Sat." -msgstr "Sáb." - -#: html/Prefs/MyRT.html:74 html/Prefs/Quicksearch.html:66 html/Prefs/Search.html:71 html/Prefs/Search.html:71 html/Search/Elements/EditSearches:72 html/Widgets/SelectionBox:222 -msgid "Save" -msgstr "Salvar" - -#: html/Admin/Global/Template.html:69 html/Admin/Groups/Modify.html:94 html/Admin/Queues/Modify.html:113 html/Admin/Queues/People.html:128 html/Admin/Users/Modify.html:243 html/Prefs/Quicksearch.html:66 html/Prefs/SearchOptions.html:65 html/SelfService/Prefs.html:60 html/Ticket/Modify.html:62 html/Ticket/ModifyAll.html:129 html/Ticket/ModifyDates.html:62 html/Ticket/ModifyLinks.html:63 html/Ticket/ModifyPeople.html:62 html/User/Groups/Modify.html:79 -msgid "Save Changes" -msgstr "Salvar as Alterações" - -#: html/User/Prefs.html:183 -msgid "Save Preferences" -msgstr "Salvar Preferências" - -#: html/Ticket/Elements/PreviewScrips:133 -msgid "Save changes" -msgstr "Salvar as alterações" - -#: lib/RT/SavedSearch.pm:175 -#. ($name) -msgid "Saved search %1" -msgstr "Busca salva %1" - -#: html/Admin/Elements/ListGlobalScrips:62 html/Admin/Global/Scrip.html:79 html/Admin/Queues/Scrip.html:86 -#. ($scrip->Id) -#. ($id) -msgid "Scrip #%1" -msgstr "Scrip #%1" - -#: lib/RT/Scrip_Overlay.pm:205 -msgid "Scrip Created" -msgstr "Scrip Criado" - -#: html/Admin/Elements/EditScrip:54 -msgid "Scrip Fields" -msgstr "Campos de Scrip" - -#: html/Admin/Elements/EditScrips:111 -msgid "Scrip deleted" -msgstr "Scrip removido" - -#: html/Admin/Elements/QueueTabs:69 html/Admin/Elements/SystemTabs:56 html/Admin/Global/index.html:64 -msgid "Scrips" -msgstr "Scrips" - -#: NOT FOUND IN SOURCE -msgid "Scrips for %1\\n" -msgstr "Scrips para %1\\n" - -#: html/Admin/Queues/Scrips.html:57 -msgid "Scrips which apply to all queues" -msgstr "Scrips aplicáveis a todas as filas" - -#: html/Elements/SimpleSearch:50 html/Search/Simple.html:67 -msgid "Search" -msgstr "Buscar" - -#: NOT FOUND IN SOURCE -msgid "Search Criteria" -msgstr "Critérios de Busca" - -#: html/Prefs/SearchOptions.html:49 html/Prefs/SearchOptions.html:52 -msgid "Search Preferences" -msgstr "Buscar Preferências" - -#: lib/RT/SavedSearch.pm:117 -msgid "Search attribute load failure" -msgstr "Falha na carga de atributos de busca" - -#: html/Approvals/Elements/PendingMyApproval:61 -msgid "Search for approvals" -msgstr "Buscar por aprovações" - -#: html/Search/Simple.html:77 -msgid "Search for tickets" -msgstr "Busca por tíquetes" - -#: html/Search/Simple.html:59 -msgid "Search for tickets. Enter <strong>id</strong> numbers, <strong>queues</strong> by name, Owners by <strong>username</strong> and Requestors by <strong>email address</strong>. RT will look for anything else you enter in ticket bodies and attachments." -msgstr "Busca por tíquetes. Informar <strong>id</strong> por número, <strong>filas</strong> por nome, Proprietários por <strong>nomedeusuário</strong> e Requisitantes por <strong>endereço de e-email</strong>. RT vai procurar por qualquer outra coisa no corpo e anexos dos tíquetes." - -#: html/User/Elements/Tabs:64 -msgid "Search options" -msgstr "Opções de busca" - -#: html/Search/Chart.html:58 -#. ($PrimaryGroupBy) -msgid "Search results grouped by %1" -msgstr "Resultados da busca agrupado por %1" - -#: lib/RT/SavedSearch.pm:205 -#. ($msg) -msgid "Search update: %1" -msgstr "Busca atualizada: %1" - -#: html/Search/Simple.html:61 -msgid "Searching the full text of every ticket can take a long time, but if you need to do it, you can search for any word in full ticket history for any word by typing <b>fulltext:<i>word</i></b>." -msgstr "Pesquisar o texto completo de todos os tíquetes pode gastar muito tempo, mas se você precisa disto, é possível procurar por qualquer palavra no histórico completo do tíquete teclando <b>fulltext:<i>palavra</i></b>." - -#: bin/rt-crontool:267 -msgid "Security:" -msgstr "Segurança:" - -#: html/Elements/ShowCustomFields:102 -msgid "See also:" -msgstr "Ver também:" - -#: lib/RT/CustomField_Overlay.pm:107 -msgid "See custom fields" -msgstr "Ver campos personalizados" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "See exact outgoing email messages and their recipeients" -msgstr "Ver mensagens de saída e destinatários" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "See ticket private commentary" -msgstr "Ver comentários privados do tíquete" - -#: lib/RT/Queue_Overlay.pm:105 -msgid "See ticket summaries" -msgstr "Ver sumários de tíquetes" - -#: lib/RT/CustomField_Overlay.pm:107 -msgid "SeeCustomField" -msgstr "VerCampoPersonalizado" - -#: lib/RT/Group_Overlay.pm:171 -msgid "SeeGroup" -msgstr "VerGrupo" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "SeeQueue" -msgstr "SeeQueue" - -#: html/Admin/CustomFields/index.html:48 html/Admin/CustomFields/index.html:51 -msgid "Select a Custom Field" -msgstr "Selecionar um Campo Personalizado" - -#: html/Admin/Groups/index.html:80 -msgid "Select a group" -msgstr "Selecionar um grupo" - -#: html/Admin/Queues/index.html:56 -msgid "Select a queue" -msgstr "Selecionar uma fila" - -#: html/SelfService/CreateTicketInQueue.html:50 -msgid "Select a queue for your new ticket" -msgstr "Selecionar uma fila para seu novo tíquete" - -#: html/Admin/Users/index.html:48 html/Admin/Users/index.html:51 html/Admin/Users/index.html:54 -msgid "Select a user" -msgstr "Selecionar um usuário" - -#: html/Admin/Elements/CustomFieldTabs:92 -msgid "Select custom field" -msgstr "Selecionar um campo personalizado" - -#: html/Admin/Global/CustomFields/index.html:72 -msgid "Select custom fields for all user groups" -msgstr "Selecionar campos personalizados para todos grupos de usuário" - -#: html/Admin/Global/CustomFields/index.html:67 -msgid "Select custom fields for all users" -msgstr "Selecionar campos personalizados para todos usuários" - -#: html/Admin/Global/CustomFields/index.html:78 -msgid "Select custom fields for tickets in all queues" -msgstr "Selecionar campos personalizados para todas filas" - -#: html/Admin/Global/CustomFields/index.html:85 -msgid "Select custom fields for transactions on tickets in all queues" -msgstr "" -"Selecionar campos personalizados para transações em tíquetes de todas as " -"filas" - -#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 -msgid "Select group" -msgstr "Selecionar um grupo" - -#: lib/RT/CustomField_Overlay.pm:61 -msgid "Select multiple values" -msgstr "Selecionar valores múltiplos" - -#: lib/RT/CustomField_Overlay.pm:62 -msgid "Select one value" -msgstr "Selecionar um valor" - -#: html/Admin/Elements/QueueTabs:94 -msgid "Select queue" -msgstr "Selecionar uma fila" - -#: html/Prefs/Quicksearch.html:55 -msgid "Select queues to be displayed on the \"RT at a glance\" page" -msgstr "Selecionar filas a serem mostradas na página \"RT por alto\"" - -#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:59 html/Admin/Queues/Scrip.html:69 html/Admin/Queues/Scrips.html:75 -msgid "Select scrip" -msgstr "Selecionar um scrip" - -#: html/Admin/Global/Template.html:80 html/Admin/Global/Templates.html:59 html/Admin/Queues/Template.html:78 html/Admin/Queues/Templates.html:70 -msgid "Select template" -msgstr "Selecionar um modelo" - -#: lib/RT/CustomField_Overlay.pm:63 -msgid "Select up to %1 values" -msgstr "Selecionar até %1 valores" - -#: html/Admin/Elements/UserTabs:80 -msgid "Select user" -msgstr "Selecionar um usuário" - -#: NOT FOUND IN SOURCE -msgid "SelectMultiple" -msgstr "SelectMultiple" - -#: NOT FOUND IN SOURCE -msgid "SelectSingle" -msgstr "SelectSingle" - -#: html/Admin/Elements/EditCustomFields:60 -msgid "Selected Custom Fields" -msgstr "Selecionar Campos Personalizados" - -#: html/Admin/CustomFields/Objects.html:61 -msgid "Selected objects" -msgstr "Selecionar Objetos" - -#: html/Widgets/SelectionBox:220 -msgid "Selections modified. Please save your changes" -msgstr "Seleções mudadas.Por favor, salve suas alterações" - -#: NOT FOUND IN SOURCE -msgid "Self Service" -msgstr "Auto-serviço" - -#: etc/initialdata:121 -msgid "Send mail to all watchers" -msgstr "Enviar mensagem a todos os observadores" - -#: etc/initialdata:117 -msgid "Send mail to all watchers as a \"comment\"" -msgstr "Enviar mensagem a todos os observadores como um \"comentário\"" - -#: etc/initialdata:112 -msgid "Send mail to requestors and Ccs" -msgstr "Enviar mensagem aos requisitantes e Ccs" - -#: etc/initialdata:107 -msgid "Send mail to requestors and Ccs as a comment" -msgstr "Enviar mensagem aos requisitantes e Ccs como um comentário" - -#: etc/initialdata:78 -msgid "Sends a message to the requestors" -msgstr "Envia uma mensagem aos requisitantes" - -#: etc/initialdata:125 etc/initialdata:129 -msgid "Sends mail to explicitly listed Ccs and Bccs" -msgstr "Envia uma mensagem aos Ccs e Bccs explicitamente listados" - -#: etc/initialdata:94 etc/upgrade/3.1.17/content:7 -msgid "Sends mail to the Ccs" -msgstr "Envie mail para os Ccs" - -#: etc/initialdata:90 etc/upgrade/3.1.17/content:3 -msgid "Sends mail to the Ccs as a comment" -msgstr "Envie mail para os Ccs como um comentário" - -#: etc/initialdata:102 -msgid "Sends mail to the administrative Ccs" -msgstr "Envia uma mensagem aos Ccs administrativos" - -#: etc/initialdata:98 -msgid "Sends mail to the administrative Ccs as a comment" -msgstr "Envia uma mensagem aos Ccs administrativos como um comentário" - -#: etc/initialdata:82 etc/initialdata:86 -msgid "Sends mail to the owner" -msgstr "Envia uma mensagem ao proprietário" - -#: lib/RT/Date.pm:451 -msgid "Sep." -msgstr "Set." - -#: NOT FOUND IN SOURCE -msgid "September" -msgstr "Setembro" - -#: html/Ticket/Elements/ShowTransaction:158 -msgid "Show" -msgstr "Mostrar" - -#: NOT FOUND IN SOURCE -msgid "Show Approvals" -msgstr "Mostrar Aprovações" - -#: html/Search/Elements/EditFormat:58 -msgid "Show Columns" -msgstr "Mostrar Colunas" - -#: html/Ticket/Elements/Tabs:222 -msgid "Show Results" -msgstr "Mostrar os Resultados" - -#: html/Approvals/Elements/PendingMyApproval:66 -msgid "Show approved requests" -msgstr "Mostrar requisições aprovadas" - -#: html/Ticket/Create.html:390 -msgid "Show basics" -msgstr "Mostrar o sumário" - -#: html/Approvals/Elements/PendingMyApproval:67 -msgid "Show denied requests" -msgstr "Mostrar requisições negadas" - -#: html/Ticket/Create.html:393 -msgid "Show details" -msgstr "Mostrar os detalhes" - -#: html/Approvals/Elements/PendingMyApproval:65 -msgid "Show pending requests" -msgstr "Mostrar requisições pendentes" - -#: html/Approvals/Elements/PendingMyApproval:68 -msgid "Show requests awaiting other approvals" -msgstr "Mostrar requisições aguardando outras aprovações" - -#: NOT FOUND IN SOURCE -msgid "Show ticket private commentary" -msgstr "Mostrar comentário privado do tíquete" - -#: NOT FOUND IN SOURCE -msgid "Show ticket summaries" -msgstr "Mostrar sumários do tíquete" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "ShowACL" -msgstr "MostrarACL" - -#: lib/RT/System.pm:87 -msgid "ShowConfigTab" -msgstr "MostarAbaDeConfiguracao" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "ShowOutgoingEmail" -msgstr "MostrarE-maildeSaida" - -#: lib/RT/Group_Overlay.pm:170 -msgid "ShowSavedSearches" -msgstr "MostrarBuscasSalvas" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "ShowScrips" -msgstr "MostrarScrips" - -#: lib/RT/Queue_Overlay.pm:101 -msgid "ShowTemplate" -msgstr "MostrarModelo" - -#: lib/RT/Queue_Overlay.pm:105 -msgid "ShowTicket" -msgstr "MostrarTiquete" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "ShowTicketComments" -msgstr "MostrarComentariosdeTiquete" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "Sign up as a ticket Requestor or ticket or queue Cc" -msgstr "Cadastrar como um Requisitante de tíquete ou um Cc de tíquete ou fila" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "Sign up as a ticket or queue AdminCc" -msgstr "Cadastrar como um AdminCC de tíquete ou fila" - -#: html/Admin/Users/Modify.html:234 html/User/Prefs.html:170 -msgid "Signature" -msgstr "Assinatura" - -#: NOT FOUND IN SOURCE -msgid "Signed in as %1" -msgstr "Assinado como %1" - -#: html/Elements/Tabs:71 -msgid "Simple Search" -msgstr "Busca Simples" - -#: html/Admin/Elements/SelectSingleOrMultiple:49 -msgid "Single" -msgstr "Único" - -#: html/Search/Elements/EditFormat:77 -msgid "Size" -msgstr "Tamanho" - -#: html/Elements/Header:91 -msgid "Skip Menu" -msgstr "Saltar Menu" - -#: html/Search/Elements/EditFormat:80 -msgid "Small" -msgstr "Pequeno" - -#: html/Admin/CustomFields/Modify.html:122 -msgid "Some browsers may only load content from the same domain as your RT server." -msgstr "" -"Alguns navegadores somente carregam conteúdo do mesmo domínio que seu " -"servidor RT." - -#: html/Admin/Elements/AddCustomFieldValue:51 html/Admin/Elements/EditCustomFieldValues:56 -msgid "Sort" -msgstr "Ordenar" - -#: NOT FOUND IN SOURCE -msgid "Sort key" -msgstr "Chave de ordenação" - -#: NOT FOUND IN SOURCE -msgid "Sort results by" -msgstr "Ordenar os resultados por" - -#: NOT FOUND IN SOURCE -msgid "SortOrder" -msgstr "Ordenação" - -#: html/Admin/Elements/EditScrip:80 -msgid "Stage" -msgstr "Estágio" - -#: NOT FOUND IN SOURCE -msgid "Stalled" -msgstr "Pendente" - -#: NOT FOUND IN SOURCE -msgid "Start page" -msgstr "Página inicial" - -#: html/Elements/SelectDateType:50 html/Ticket/Elements/EditDates:55 html/Ticket/Elements/ShowDates:58 -msgid "Started" -msgstr "Iniciado" - -#: NOT FOUND IN SOURCE -msgid "Started date '%1' could not be parsed" -msgstr "A data de iníciado '%1' não pôde ser compreendida" - -#: html/Elements/SelectDateType:54 html/Ticket/Create.html:210 html/Ticket/Elements/EditDates:50 html/Ticket/Elements/ShowDates:54 -msgid "Starts" -msgstr "Inicia" - -#: NOT FOUND IN SOURCE -msgid "Starts By" -msgstr "Inicia Por" - -#: NOT FOUND IN SOURCE -msgid "Starts date '%1' could not be parsed" -msgstr "A data de início '%1' não pôde ser compreendida" - -#: html/Admin/Users/Modify.html:165 html/User/Prefs.html:147 -msgid "State" -msgstr "Estado" - -#: html/Search/Elements/PickBasics:89 html/SelfService/Update.html:59 html/Ticket/Create.html:68 html/Ticket/Elements/EditBasics:55 html/Ticket/Elements/ShowBasics:54 html/Ticket/Update.html:61 html/Tools/MyDay.html:70 lib/RT/Ticket_Overlay.pm:1168 lib/RT/Tickets_Overlay.pm:1767 -msgid "Status" -msgstr "Estado" - -#: etc/initialdata:309 -msgid "Status Change" -msgstr "Mudança de Estado" - -#: NOT FOUND IN SOURCE -msgid "Status changed from %1 to %2" -msgstr "Estado mudado de %1 para %2" - -#: NOT FOUND IN SOURCE -msgid "StatusChange" -msgstr "MudancadeEstado" - -#: html/Ticket/Elements/Tabs:180 -msgid "Steal" -msgstr "Roubar" - -#: lib/RT/Queue_Overlay.pm:119 -msgid "Steal tickets" -msgstr "Roubar tíquetes" - -#: lib/RT/Queue_Overlay.pm:119 -msgid "StealTicket" -msgstr "RoubarTiquete" - -#: lib/RT/Transaction_Overlay.pm:699 -#. ($Old->Name) -msgid "Stolen from %1" -msgstr "Roubado de %1" - -#: NOT FOUND IN SOURCE -msgid "Stolen from %1 " -msgstr "Roubado de %1 " - -#: html/Search/Elements/EditFormat:83 -msgid "Style" -msgstr "Estilo" - -#: html/Elements/QuickCreate:54 html/Elements/SelectAttachmentField:49 html/Search/Bulk.html:134 html/SelfService/Create.html:81 html/SelfService/Update.html:67 html/Ticket/Create.html:110 html/Ticket/Elements/EditBasics:50 html/Ticket/Elements/Reminders:127 html/Ticket/ModifyAll.html:102 html/Ticket/Update.html:84 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:1849 -msgid "Subject" -msgstr "Assunto" - -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:813 lib/RT/Transaction_Overlay.pm:721 -#. ($self->Data) -msgid "Subject changed to %1" -msgstr "Assunto mudou para %1" - -#: html/Elements/Submit:77 -msgid "Submit" -msgstr "Enviar" - -#: NOT FOUND IN SOURCE -msgid "Submit Workflow" -msgstr "Enviar Workflow" - -#: lib/RT/Group_Overlay.pm:776 -msgid "Succeeded" -msgstr "Deu certo" - -#: lib/RT/Date.pm:425 -msgid "Sun." -msgstr "Dom." - -#: lib/RT/System.pm:77 -msgid "SuperUser" -msgstr "SuperUsuário" - -#: html/User/Elements/DelegateRights:100 -msgid "System" -msgstr "Sistema" - -#: html/Admin/Elements/ToolTabs:56 html/Admin/Tools/Configuration.html:50 -msgid "System Configuration" -msgstr "Configuração do Sistema" - -#: html/Admin/CustomFields/GroupRights.html:130 html/Admin/CustomFields/GroupRights.html:157 html/Admin/CustomFields/UserRights.html:100 html/Admin/CustomFields/UserRights.html:130 html/Admin/Elements/SelectRights:108 lib/RT/ACE_Overlay.pm:586 lib/RT/Interface/Web.pm:1015 lib/RT/Interface/Web.pm:986 -msgid "System Error" -msgstr "Erro do Sistema" - -#: NOT FOUND IN SOURCE -msgid "System Error. Right not granted." -msgstr "Erro de sistema. Direito não outorgado." - -#: NOT FOUND IN SOURCE -msgid "System Error. right not granted" -msgstr "Erro de sistema. direito não outorgado" - -#: lib/RT/Transaction_Overlay.pm:226 lib/RT/Transaction_Overlay.pm:232 -#. ($msg) -msgid "System Error: %1" -msgstr "Erro do Sistema: %1" - -#: html/Admin/Tools/index.html:49 -msgid "System Tools" -msgstr "Ferramentas do Sistema" - -#: lib/RT/ACE_Overlay.pm:635 -msgid "System error. Right not delegated." -msgstr "Erro do sistema. Direito de acesso não delegado." - -#: lib/RT/ACE_Overlay.pm:165 lib/RT/ACE_Overlay.pm:230 lib/RT/ACE_Overlay.pm:325 -msgid "System error. Right not granted." -msgstr "Erro do sistema. Direito de acesso não outorgado." - -#: NOT FOUND IN SOURCE -msgid "System error. Unable to grant rights." -msgstr "Erro de sistema. Não é possível outorgar direitos de acesso." - -#: html/Admin/CustomFields/GroupRights.html:60 html/Admin/Global/GroupRights.html:58 html/Admin/Groups/GroupRights.html:60 html/Admin/Queues/GroupRights.html:59 -msgid "System groups" -msgstr "Grupos do sistema" - -#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 -msgid "SystemRolegroup for internal use" -msgstr "SystemRolegroup para uso interno" - -#: lib/RT/CurrentUser.pm:359 -msgid "TEST_STRING" -msgstr "" - -#: etc/initialdata:603 html/Search/Elements/EditFormat:74 html/Ticket/Elements/Tabs:172 -msgid "Take" -msgstr "Tomar" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "Take tickets" -msgstr "Tomar tíquetes" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "TakeTicket" -msgstr "TomarTiquete" - -#: lib/RT/Transaction_Overlay.pm:684 -msgid "Taken" -msgstr "Tomado" - -#: html/Admin/Elements/EditScrip:73 html/Tools/Offline.html:80 -msgid "Template" -msgstr "Modelo" - -# -#: html/Admin/Global/Template.html:114 html/Admin/Queues/Template.html:115 -#. ($TemplateObj->Id()) -msgid "Template #%1" -msgstr "Modelo #%1" - -#: html/Admin/Elements/EditTemplates:112 -msgid "Template deleted" -msgstr "Modelo removido" - -#: lib/RT/Scrip_Overlay.pm:178 -msgid "Template is mandatory argument" -msgstr "Modelo é um argumento obrigatório" - -#: lib/RT/Scrip_Overlay.pm:182 -msgid "Template not found" -msgstr "Modelo não encontrado" - -#: NOT FOUND IN SOURCE -msgid "Template not found\\n" -msgstr "Modelo não encontrado\\n" - -#: lib/RT/Template_Overlay.pm:346 -msgid "Template parsed" -msgstr "Modelo processado" - -#: lib/RT/Template_Overlay.pm:398 -msgid "Template parsing error" -msgstr "Erro de análise gramatical do modelo" - -#: html/Admin/Elements/QueueTabs:72 html/Admin/Elements/SystemTabs:59 html/Admin/Global/index.html:68 -msgid "Templates" -msgstr "Modelos" - -#: NOT FOUND IN SOURCE -msgid "Templates for %1\\n" -msgstr "Modelos de %1\\n" - -#: lib/RT/CustomField_Overlay.pm:946 lib/RT/Record.pm:962 -msgid "That is already the current value" -msgstr "Este já é o valor atual" - -#: lib/RT/CustomField_Overlay.pm:415 -msgid "That is not a value for this custom field" -msgstr "Este não é um valor para este campo personalizado" - -#: lib/RT/Ticket_Overlay.pm:1996 -msgid "That is the same value" -msgstr "Este é o mesmo valor" - -#: lib/RT/ACE_Overlay.pm:307 lib/RT/ACE_Overlay.pm:616 -msgid "That principal already has that right" -msgstr "Este usuário/grupo já tem este direito." - -#: lib/RT/Queue_Overlay.pm:755 -#. ($args{'Type'}) -msgid "That principal is already a %1 for this queue" -msgstr "Este usuário/grupo já é um %1 desta fila" - -#: lib/RT/Ticket_Overlay.pm:1437 -#. ($self->loc($args{'Type'})) -msgid "That principal is already a %1 for this ticket" -msgstr "Este usuário/grupo já é um %1 deste tíquete" - -#: lib/RT/Queue_Overlay.pm:854 -#. ($args{'Type'}) -msgid "That principal is not a %1 for this queue" -msgstr "Este usuário/grupo não é um %1 desta fila" - -#: NOT FOUND IN SOURCE -msgid "That principal is not a %1 for this ticket" -msgstr "Este principal não é um %1 deste tíquete" - -#: lib/RT/Ticket_Overlay.pm:1992 -msgid "That queue does not exist" -msgstr "Esta fila não existe" - -#: lib/RT/Ticket_Overlay.pm:3259 -msgid "That ticket has unresolved dependencies" -msgstr "Este tíquete tem dependências não resolvidas" - -#: NOT FOUND IN SOURCE -msgid "That user already has that right" -msgstr "Este usuário já tem este direito de acesso" - -#: lib/RT/Action/CreateTickets.pm:712 lib/RT/Ticket_Overlay.pm:3062 -msgid "That user already owns that ticket" -msgstr "Este usuário já possui este tíquete" - -#: lib/RT/Ticket_Overlay.pm:3005 -msgid "That user does not exist" -msgstr "Este usuário não existe" - -#: lib/RT/User_Overlay.pm:391 -msgid "That user is already privileged" -msgstr "Este usuário já tem privilégios" - -#: lib/RT/User_Overlay.pm:412 -msgid "That user is already unprivileged" -msgstr "Este usuário já não tem privilégios" - -#: lib/RT/User_Overlay.pm:404 -msgid "That user is now privileged" -msgstr "Este usuário agora tem privilégios" - -#: lib/RT/User_Overlay.pm:425 -msgid "That user is now unprivileged" -msgstr "Este usuário agora não tem privilégios" - -#: NOT FOUND IN SOURCE -msgid "That user is now unprivilegedileged" -msgstr "Este usuário agora é não privilegiado" - -#: lib/RT/Ticket_Overlay.pm:3055 -msgid "That user may not own tickets in that queue" -msgstr "Este usuário não pode possuir tíquetes nesta fila" - -#: lib/RT/Link_Overlay.pm:235 -msgid "That's not a numerical id" -msgstr "Este não é um identificador numérico" - -#: html/SelfService/Display.html:55 html/Ticket/Create.html:179 html/Ticket/Elements/ShowSummary:51 -msgid "The Basics" -msgstr "Sumário" - -#: lib/RT/ACE_Overlay.pm:114 -msgid "The CC of a ticket" -msgstr "O CC de um tíquete" - -#: lib/RT/ACE_Overlay.pm:115 -msgid "The administrative CC of a ticket" -msgstr "O CC administrativo de um tíquete" - -#: NOT FOUND IN SOURCE -msgid "The comment has been recorded" -msgstr "O comentário foi registrado" - -#: bin/rt-crontool:277 -msgid "The following command will find all active tickets in the queue 'general' and set their priority to 99 if they haven't been touched in 4 hours:" -msgstr "O seguinte comando procurará por todos os tíquetes ativos na fila 'geral' e alterar sua prioridade para 99 se eles não tiverem sido alterados há 4 horas:" - -#: NOT FOUND IN SOURCE -msgid "The following commands were not proccessed:\\n\\n" -msgstr "Os seguintes comandos não foram processados:\\n\\n" - -#: lib/RT/Record.pm:965 -msgid "The new value has been set." -msgstr "O novo valor foi atribuído." - -#: lib/RT/ACE_Overlay.pm:112 -msgid "The owner of a ticket" -msgstr "O proprietário de um tíquete" - -#: lib/RT/ACE_Overlay.pm:113 -msgid "The requestor of a ticket" -msgstr "O requisitante de um tíquete" - -#: html/Admin/Elements/EditUserComments:49 -msgid "These comments aren't generally visible to the user" -msgstr "Estes comandos geralmente não estão visíveis para o usuário" - -#: lib/RT/CustomField_Overlay.pm:981 -msgid "This custom field does not apply to that object" -msgstr "Este campo personalizado não se aplica a este objeto" - -#: html/Admin/Tools/Configuration.html:52 -msgid "This feature is only available to system administrators" -msgstr "Esta função só está disponível para administradores do sistema" - -#: html/Ticket/Elements/PreviewScrips:98 -msgid "This message will be sent to..." -msgstr "Esta mensagem será enviada para..." - -#: NOT FOUND IN SOURCE -msgid "This ticket %1 %2 (%3)\\n" -msgstr "Este tíquete %1 %2 (%3)\\n" - -#: bin/rt-crontool:268 -msgid "This tool allows the user to run arbitrary perl modules from within RT." -msgstr "" -"Esta ferramenta permite o usuário invocar módulos Perl arbitrários de dentro " -"do RT." - -#: lib/RT/Transaction_Overlay.pm:327 -msgid "This transaction appears to have no content" -msgstr "Parece que esta transação não tem conteúdo" - -#: html/Ticket/Elements/ShowRequestor:72 -#. ($rows) -msgid "This user's %1 highest priority tickets" -msgstr "Os %1 tíquetes mais prioritários deste usuário" - -#: NOT FOUND IN SOURCE -msgid "This user's 25 highest priority tickets" -msgstr "Os 25 tíquetes de mais alta prioridade deste usuário" - -#: lib/RT/Date.pm:422 -msgid "Thu." -msgstr "Qui." - -#: NOT FOUND IN SOURCE -msgid "Ticket" -msgstr "Tíquete" - -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 %2" -msgstr "Tíquete # %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 Jumbo update: %2" -msgstr "Tíquete # %1 atualização jumbo: %2" - -#: html/Ticket/ModifyAll.html:48 html/Ticket/ModifyAll.html:52 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket #%1 Jumbo update: %2" -msgstr "Tíquete #%1 Atualização jumbo: %2" - -#: html/Approvals/Elements/ShowDependency:69 -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Ticket #%1: %2" -msgstr "Tíquete #%1: %2" - -#: lib/RT/Action/CreateTickets.pm:1352 lib/RT/Action/CreateTickets.pm:1361 lib/RT/Action/CreateTickets.pm:607 lib/RT/Action/CreateTickets.pm:731 lib/RT/Action/CreateTickets.pm:743 -#. ($T::Tickets{$template_id}->Id) -#. ($T::Tickets{$template_id}->id) -#. ($ticket->Id) -msgid "Ticket %1" -msgstr "Tíquete %1" - -#: lib/RT/Ticket_Overlay.pm:757 lib/RT/Ticket_Overlay.pm:777 -#. ($self->Id, $QueueObj->Name) -msgid "Ticket %1 created in queue '%2'" -msgstr "Tíquete %1 criado na fila '%2'" - -#: NOT FOUND IN SOURCE -msgid "Ticket %1 loaded\\n" -msgstr "Tíquete %1 carregado\\n" - -#: html/Search/Bulk.html:379 html/Tools/MyDay.html:103 html/Tools/MyDay.html:94 html/Tools/MyDay.html:97 -#. ($Ticket->Id, $_) -#. ($id, $msg) -msgid "Ticket %1: %2" -msgstr "Tíquete %1: %2" - -#: html/Admin/Elements/QueueTabs:76 -msgid "Ticket Custom Fields" -msgstr "Campos Personalizados do Tíquete" - -#: html/Ticket/History.html:48 html/Ticket/History.html:51 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket History # %1 %2" -msgstr "Histórico do Tíquete # %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Ticket Id" -msgstr "Identificador do tíquete" - -#: etc/initialdata:324 -msgid "Ticket Resolved" -msgstr "Tíquete Resolvido" - -#: html/Admin/Elements/GlobalCustomFieldTabs:71 html/Admin/Global/CustomFields/index.html:83 lib/RT/CustomField_Overlay.pm:1210 -msgid "Ticket Transactions" -msgstr "Transações do Tíquete" - -#: NOT FOUND IN SOURCE -msgid "Ticket attachment" -msgstr "Arquivo anexo do tíquete" - -#: lib/RT/Tickets_Overlay.pm:2036 -msgid "Ticket content" -msgstr "Conteúdo do tíquete" - -#: lib/RT/Tickets_Overlay.pm:2085 -msgid "Ticket content type" -msgstr "Tipo do conteúdo do tíquete" - -#: lib/RT/Ticket_Overlay.pm:605 lib/RT/Ticket_Overlay.pm:619 lib/RT/Ticket_Overlay.pm:630 lib/RT/Ticket_Overlay.pm:765 -msgid "Ticket could not be created due to an internal error" -msgstr "O tíquete não pôde ser criado devido a um erro interno" - -#: html/Ticket/Create.html:246 -msgid "Ticket could not be loaded" -msgstr "Tíquete não pode ser carregado" - -#: NOT FOUND IN SOURCE -msgid "Ticket created" -msgstr "Tíquete criado" - -#: NOT FOUND IN SOURCE -msgid "Ticket creation failed" -msgstr "A criação do tíquete falhou" - -#: NOT FOUND IN SOURCE -msgid "Ticket deleted" -msgstr "Tíquete removido" - -#: NOT FOUND IN SOURCE -msgid "Ticket id not found" -msgstr "Id de tíquete não encontrado" - -#: NOT FOUND IN SOURCE -msgid "Ticket killed" -msgstr "Tíquete destruído" - -#: html/Ticket/Display.html:57 -msgid "Ticket metadata" -msgstr "Metadados do tíquete" - -#: NOT FOUND IN SOURCE -msgid "Ticket not found" -msgstr "Tíquete não encontrado" - -#: etc/initialdata:310 -msgid "Ticket status changed" -msgstr "O estado do tíquete mudou" - -#: NOT FOUND IN SOURCE -msgid "Ticket watchers" -msgstr "Observadores do tíquete" - -#: lib/RT/Search/FromSQL.pm:84 -#. (ref $self) -msgid "TicketSQL search module" -msgstr "Módulo de busca TiqueteSQL" - -#: html/Admin/Elements/GlobalCustomFieldTabs:66 html/Admin/Global/CustomFields/index.html:77 html/Elements/Tabs:74 html/Search/Chart:113 html/Search/Elements/Chart:111 lib/RT/CustomField_Overlay.pm:1209 -msgid "Tickets" -msgstr "Tíquetes" - -#: NOT FOUND IN SOURCE -msgid "Tickets %1 %2" -msgstr "Tíquetes %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Tickets %1 by %2" -msgstr "Tíquetes %1 por %2" - -#: html/Tools/Reports/CreatedByDates.html:88 -msgid "Tickets created after" -msgstr "Tíquetes criados depois de" - -#: html/Tools/Reports/CreatedByDates.html:90 -msgid "Tickets created before" -msgstr "Tíquetes criados antes de" - -#: NOT FOUND IN SOURCE -msgid "Tickets from %1" -msgstr "Tíquetes de %1" - -#: html/Tools/Reports/ResolvedByDates.html:89 -msgid "Tickets resolved after" -msgstr "Tíquetes resolvidos depois de" - -#: html/Tools/Reports/ResolvedByDates.html:91 -msgid "Tickets resolved before" -msgstr "Tíquetes resolvidos antes de" - -#: html/Approvals/Elements/ShowDependency:50 -msgid "Tickets which depend on this approval:" -msgstr "Tíquetes dependentes desta aprovação:" - -#: html/Search/Elements/PickBasics:136 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:74 -msgid "Time Estimated" -msgstr "Tempo Estimado" - -#: html/Search/Elements/PickBasics:137 html/Ticket/Create.html:198 html/Ticket/Elements/EditBasics:87 lib/RT/Tickets_Overlay.pm:2007 -msgid "Time Left" -msgstr "Tempo Restante" - -#: html/Search/Elements/PickBasics:135 html/Ticket/Create.html:191 html/Ticket/Elements/EditBasics:80 lib/RT/Tickets_Overlay.pm:1982 -msgid "Time Worked" -msgstr "Tempo Trabalhado" - -#: NOT FOUND IN SOURCE -msgid "Time left" -msgstr "Tempo restante" - -#: html/Elements/Footer:53 -msgid "Time to display" -msgstr "Tempo de apresentação" - -#: NOT FOUND IN SOURCE -msgid "Time worked" -msgstr "Tempo trabalhado" - -#: NOT FOUND IN SOURCE -msgid "TimeLeft" -msgstr "TempoRestanrte" - -#: lib/RT/Ticket_Overlay.pm:1169 -msgid "TimeWorked" -msgstr "TempoTrabalhado" - -#: html/Search/Elements/EditFormat:76 -msgid "Title" -msgstr "Título" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:" -msgstr "Para gerar as diferenças desta transação" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:\\n" -msgstr "Para gerar as diferenças desta transação:\\n" - -#: html/Elements/Footer:64 -#. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') -msgid "To inquire about support, training, custom development or licensing, please contact %1." -msgstr "Para pedir informações sobre suporte, treinamento, desenvolvimento personalizado ou licenciamento, por favor, contacte %1." - -#: lib/RT/Ticket_Overlay.pm:1172 -msgid "Told" -msgstr "Última atualização" - -#: html/Admin/Elements/Tabs:70 html/Admin/index.html:90 html/Elements/Tabs:77 html/Tools/index.html:48 html/Tools/index.html:51 -msgid "Tools" -msgstr "Ferramentas" - -#: html/Search/Elements/Chart:132 -msgid "Total" -msgstr "Total" - -#: etc/initialdata:252 -msgid "Transaction" -msgstr "Transação" - -#: lib/RT/Transaction_Overlay.pm:826 -#. ($self->Data) -msgid "Transaction %1 purged" -msgstr "Transação %1 removida" - -#: lib/RT/Transaction_Overlay.pm:185 -msgid "Transaction Created" -msgstr "Transação Criada" - -#: html/Admin/Elements/QueueTabs:80 -msgid "Transaction Custom Fields" -msgstr "Campos Personalizados da Transação" - -#: NOT FOUND IN SOURCE -msgid "Transaction->Create couldn't, as you didn't specify a ticket id" -msgstr "Transaction->Create não foi feito, já que você não especificou um id de tíquete" - -#: lib/RT/Transaction_Overlay.pm:130 -msgid "Transaction->Create couldn't, as you didn't specify an object type and id" -msgstr "Transaction->Create não foi feito, já que você não especificou um tipo de objeto e id de tíquete" - -#: lib/RT/Transaction_Overlay.pm:891 -msgid "Transactions are immutable" -msgstr "Transações são imutáveis" - -#: NOT FOUND IN SOURCE -msgid "Trying to delete a right: %1" -msgstr "Tentando remover um direito de acesso: %1" - -#: lib/RT/Date.pm:420 -msgid "Tue." -msgstr "Ter." - -#: html/Admin/CustomFields/Modify.html:68 html/Admin/Elements/EditCustomField:67 html/Ticket/Elements/AddWatchers:56 html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/AddWatchers:77 lib/RT/Ticket_Overlay.pm:1170 lib/RT/Tickets_Overlay.pm:1821 -msgid "Type" -msgstr "Tipo" - -#: lib/RT/ScripCondition_Overlay.pm:130 -msgid "Unimplemented" -msgstr "Não implementado" - -#: html/Admin/Users/Modify.html:91 -msgid "Unix login" -msgstr "Usuário Unix" - -#: NOT FOUND IN SOURCE -msgid "UnixUsername" -msgstr "NomeUsuárioUnix" - -#: lib/RT/Attachment_Overlay.pm:291 lib/RT/Record.pm:863 -#. ($ContentEncoding) -#. ($self->ContentEncoding) -msgid "Unknown ContentEncoding %1" -msgstr "Codificação de conteúdo desconhecida %1" - -#: NOT FOUND IN SOURCE -msgid "Unknown field: $key" -msgstr "Campo desconhecido: $key" - -#: html/Search/Build.html:461 lib/RT/Report/Tickets.pm:412 -#. ($key) -msgid "Unknown field: %1" -msgstr "Campo desconhecido: %1" - -#: html/Elements/SelectResultsPerPage:60 -msgid "Unlimited" -msgstr "Ilimitado" - -#: html/Search/Elements/SelectSearchesForObjects:66 -msgid "Unnamed search" -msgstr "Busca sen nome" - -#: etc/initialdata:32 -msgid "Unprivileged" -msgstr "Não privilegiado" - -#: html/Admin/Elements/EditCustomFields:62 -msgid "Unselected Custom Fields" -msgstr "Campos Personalizados não selecionados" - -#: html/Admin/CustomFields/Objects.html:63 -msgid "Unselected objects" -msgstr "Objetos não selecionados" - -#: lib/RT/Transaction_Overlay.pm:680 -msgid "Untaken" -msgstr "Não tomado" - -#: html/Admin/Elements/EditScrip:130 html/Elements/RT__Ticket/ColumnMap:304 html/Search/Bulk.html:195 html/Search/Bulk.html:77 -msgid "Update" -msgstr "Atualizar" - -#: NOT FOUND IN SOURCE -msgid "Update ID" -msgstr "Identificador de atualização" - -#: html/Ticket/Update.html:137 -msgid "Update Ticket" -msgstr "Atualizar Tíquete" - -#: html/Search/Bulk.html:128 html/Ticket/ModifyAll.html:89 html/Ticket/Update.html:74 -msgid "Update Type" -msgstr "Tipo de atualização" - -#: NOT FOUND IN SOURCE -msgid "Update all these tickets at once" -msgstr "Atualizar todos estes tíquetes de uma vez" - -#: NOT FOUND IN SOURCE -msgid "Update email" -msgstr "Atualizar e-mail" - -#: html/Search/Bulk.html:202 html/Search/Results.html:80 -msgid "Update multiple tickets" -msgstr "Atualizar múltiplos tíquetes" - -#: NOT FOUND IN SOURCE -msgid "Update name" -msgstr "Atualizar nome" - -#: lib/RT/Action/CreateTickets.pm:752 lib/RT/Interface/Web.pm:606 -msgid "Update not recorded." -msgstr "Atualização não registrada." - -#: NOT FOUND IN SOURCE -msgid "Update selected tickets" -msgstr "Atualizar os tíquetes selecionados" - -#: NOT FOUND IN SOURCE -msgid "Update signature" -msgstr "Atualizar assinatura" - -#: html/Ticket/ModifyAll.html:86 -msgid "Update ticket" -msgstr "Atualizar o tíquete" - -#: NOT FOUND IN SOURCE -msgid "Update ticket # %1" -msgstr "Atualizar o tíquete # %1" - -#: html/SelfService/Update.html:114 html/SelfService/Update.html:49 -#. ($Ticket->id) -msgid "Update ticket #%1" -msgstr "Atualizar o tíquete #%1" - -#: html/Ticket/Update.html:160 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Update ticket #%1 (%2)" -msgstr "Atualizar tíquete #%1 (%2)" - -#: lib/RT/Action/CreateTickets.pm:750 lib/RT/Interface/Web.pm:605 -msgid "Update type was neither correspondence nor comment." -msgstr "O tipo da atualização não foi nem correspondência e nem comentário." - -#: html/Elements/SelectDateType:56 html/Ticket/Elements/ShowDates:74 lib/RT/CustomField_Overlay.pm:1287 lib/RT/Ticket_Overlay.pm:1173 -msgid "Updated" -msgstr "Atualizado" - -#: html/Tools/Offline.html:95 -msgid "Upload" -msgstr "Enviar" - -#: lib/RT/CustomField_Overlay.pm:86 -msgid "Upload multiple files" -msgstr "Enviar múltiplos arquivos" - -#: lib/RT/CustomField_Overlay.pm:81 -msgid "Upload multiple images" -msgstr "Enviar múltiplas imagens" - -#: lib/RT/CustomField_Overlay.pm:87 -msgid "Upload one file" -msgstr "Enviar um arquivo" - -#: lib/RT/CustomField_Overlay.pm:82 -msgid "Upload one image" -msgstr "Enviar uma imagem" - -#: lib/RT/CustomField_Overlay.pm:88 -msgid "Upload up to %1 files" -msgstr "Enviar até %1 arquivos" - -#: lib/RT/CustomField_Overlay.pm:83 -msgid "Upload up to %1 images" -msgstr "Enviar até %1 imagens" - -#: html/Tools/Offline.html:95 -msgid "Upload your changes" -msgstr "Enviar suas alterações" - -#: html/Admin/index.html:92 -msgid "Use other RT administrative tools" -msgstr "Usar outras ferramentas administrativas RT" - -#: NOT FOUND IN SOURCE -msgid "User %1 %2: %3\\n" -msgstr "Usuário %1 %2: %3\\n" - -#: NOT FOUND IN SOURCE -msgid "User %1 Password: %2\\n" -msgstr "Usuário %1 Senha: %2\\n" - -#: lib/RT/Ticket_Overlay.pm:508 -#. ($args{'Owner'}) -msgid "User '%1' could not be found." -msgstr "Usuário '%1' não encontrado." - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found" -msgstr "Usuário '%1' não encontrado" - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found\\n" -msgstr "Usuário '%1' não encontrado\\n" - -#: etc/initialdata:132 etc/initialdata:206 -msgid "User Defined" -msgstr "Definido pelo Usuário" - -#: html/Admin/Elements/EditScrip:95 -msgid "User Defined conditions and actions" -msgstr "Condições e ações definidas pelo usuário" - -#: NOT FOUND IN SOURCE -msgid "User ID" -msgstr "Identificador de usuário" - -#: NOT FOUND IN SOURCE -msgid "User Id" -msgstr "Identificador do usuário" - -#: html/Admin/Elements/CustomFieldTabs:74 html/Admin/Elements/GroupTabs:70 html/Admin/Elements/QueueTabs:87 html/Admin/Elements/SystemTabs:70 html/Admin/Global/index.html:82 -msgid "User Rights" -msgstr "Direitos de Acesso de Usuário" - -#: html/Admin/Users/Modify.html:305 -#. ($msg) -msgid "User could not be created: %1" -msgstr "O usuário não pôde ser criado: %1" - -#: lib/RT/User_Overlay.pm:332 -msgid "User created" -msgstr "Usuário criado" - -#: html/Admin/CustomFields/GroupRights.html:76 html/Admin/Global/GroupRights.html:90 html/Admin/Groups/GroupRights.html:77 html/Admin/Queues/GroupRights.html:92 -msgid "User defined groups" -msgstr "Grupos definidos pelo usuário" - -#: lib/RT/User_Overlay.pm:594 lib/RT/User_Overlay.pm:614 -msgid "User loaded" -msgstr "Usuário carregado" - -#: NOT FOUND IN SOURCE -msgid "User notified" -msgstr "Usuário notificado" - -#: NOT FOUND IN SOURCE -msgid "User view" -msgstr "Visualização de usuário" - -#: html/Admin/Groups/index.html:105 -msgid "User-defined groups" -msgstr "Grupos definidos pelo usuário" - -#: html/Admin/Users/Modify.html:71 html/Elements/Login:92 html/Ticket/Elements/AddWatchers:58 -msgid "Username" -msgstr "Nome de usuário" - -#: html/Admin/Elements/GlobalCustomFieldTabs:57 html/Admin/Elements/SelectNewGroupMembers:49 html/Admin/Elements/Tabs:55 html/Admin/Global/CustomFields/index.html:66 html/Admin/Groups/Members.html:78 html/Admin/Queues/People.html:91 html/Admin/index.html:64 html/User/Groups/Members.html:81 lib/RT/CustomField_Overlay.pm:1211 -msgid "Users" -msgstr "Usuários" - -#: html/Admin/Users/index.html:87 -msgid "Users matching search criteria" -msgstr "Usuários que satisfazem o critério de busca" - -#: bin/rt-crontool:136 -#. ($transaction->id) -msgid "Using transaction #%1..." -msgstr "Usando transação #%1" - -#: lib/RT/Tickets_Overlay_SQL.pm:530 -msgid "Valid Query" -msgstr "Consulta Válida" - -#: html/Admin/CustomFields/Modify.html:82 -msgid "Validation" -msgstr "Validação" - -#: NOT FOUND IN SOURCE -msgid "ValueOfQueue" -msgstr "Valor da fila" - -#: html/Admin/CustomFields/Modify.html:132 html/Admin/Elements/EditCustomField:80 -msgid "Values" -msgstr "Valores" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "Watch" -msgstr "Observar" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "WatchAsAdminCc" -msgstr "ObservarcomoAdminCC" - -#: NOT FOUND IN SOURCE -msgid "Watcher loaded" -msgstr "Observador carregado" - -#: html/Admin/Elements/QueueTabs:65 -msgid "Watchers" -msgstr "Observadores" - -#: NOT FOUND IN SOURCE -msgid "WebEncoding" -msgstr "Codificação de Web" - -#: lib/RT/Date.pm:421 -msgid "Wed." -msgstr "Qua." - -#: html/Tools/MyDay.html:80 -msgid "What I did today" -msgstr "O que eu fiz hoje" - -#: etc/initialdata:521 -msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" -msgstr "Quando todas as aprovações de um tíquete forem concedidas, adicionar uma correspondência ao tíquete original" - -#: etc/initialdata:485 -msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" -msgstr "Quando uma aprovação for concedida a um tíquete, adicionar uma correspondência ao tíquete original" - -#: etc/initialdata:146 -msgid "When a ticket is created" -msgstr "Quando um tíquete é criado" - -#: etc/initialdata:418 -msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" -msgstr "Quando um tíquete de aprovação é criado, notificar o Proprietário e o AdminCc do ítem aguardando por aprovação" - -#: etc/initialdata:151 -msgid "When anything happens" -msgstr "Quando qualquer coisa acontecer" - -#: etc/initialdata:199 -msgid "Whenever a ticket is resolved" -msgstr "Sempre que um tíquete for resolvido" - -#: etc/initialdata:185 -msgid "Whenever a ticket's owner changes" -msgstr "Sempre que mudar o proprietário de um tíquete" - -#: etc/initialdata:178 etc/upgrade/3.1.17/content:16 -msgid "Whenever a ticket's priority changes" -msgstr "Sempre que a prioridade de um tíquete for mudada" - -#: etc/initialdata:193 -msgid "Whenever a ticket's queue changes" -msgstr "Sempre que um tíquete mudar de fila" - -#: etc/initialdata:170 -msgid "Whenever a ticket's status changes" -msgstr "Sempre que o estado de um tíquete mudar" - -#: etc/initialdata:207 -msgid "Whenever a user-defined condition occurs" -msgstr "Sempre que ocorrer uma condição definida por usuário" - -#: etc/initialdata:164 -msgid "Whenever comments come in" -msgstr "Sempre que um novo comentário é adicionado" - -#: etc/initialdata:157 -msgid "Whenever correspondence comes in" -msgstr "Sempre que uma nova correspondência é adicionada" - -#: html/Admin/Users/Modify.html:191 html/User/Prefs.html:90 -msgid "Work" -msgstr "Trabalho" - -#: html/Search/Results.html:84 -msgid "Work offline" -msgstr "Trabalhar offline" - -#: NOT FOUND IN SOURCE -msgid "WorkPhone" -msgstr "Telefone de trabalho" - -#: html/Ticket/Elements/ShowBasics:65 html/Ticket/Update.html:66 html/Tools/MyDay.html:65 -msgid "Worked" -msgstr "Trabalhado" - -#: lib/RT/Ticket_Overlay.pm:3166 -msgid "You already own this ticket" -msgstr "Você já é proprietário deste tíquete" - -#: html/autohandler:216 html/autohandler:224 -msgid "You are not an authorized user" -msgstr "Você não é um usuário autorizado" - -#: html/Prefs/Search.html:58 -msgid "You can also edit the predefined search itself" -msgstr "Você também pode editar as buscas pré-definidas" - -#: lib/RT/Ticket_Overlay.pm:3048 -msgid "You can only reassign tickets that you own or that are unowned" -msgstr "Você só pode reatribuir seus próprios tíquetes ou aqueles que não têm dono" - -#: lib/RT/Ticket_Overlay.pm:3044 -msgid "You can only take tickets that are unowned" -msgstr "Você apenas pode pegar tíquetes que não tem dono" - -#: NOT FOUND IN SOURCE -msgid "You don't have permission to view that ticket.\\n" -msgstr "Você não tem permissão para ver este tíquete.\\n" - -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:778 -#. ($num, $queue) -msgid "You found %1 tickets in queue %2" -msgstr "Você encontrou %1 tíquetes na fila %2" - -#: html/NoAuth/Logout.html:54 -msgid "You have been logged out of RT." -msgstr "Você foi desconectado do RT." - -#: html/SelfService/Display.html:135 -msgid "You have no permission to create tickets in that queue." -msgstr "Você não tem permissão para criar tíquetes nesta fila." - -#: lib/RT/Ticket_Overlay.pm:2005 -msgid "You may not create requests in that queue." -msgstr "Você não pode criar requisições nesta fila." - -#: html/NoAuth/Logout.html:58 -msgid "You're welcome to login again" -msgstr "Volte sempre" - -#: NOT FOUND IN SOURCE -msgid "Your %1 requests" -msgstr "Suas %1 requisições" - -#: NOT FOUND IN SOURCE -msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" -msgstr "" -"Seu administrador do RT configurou erradamente os endereços eletrônicos que " -"invocam o RT" - -#: etc/initialdata:502 -msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "" -"Sua requisição foi aprovada por %1. Outras aprovações ainda podem estar " -"pendentes." - -#: etc/initialdata:540 -msgid "Your request has been approved." -msgstr "Sua requisição foi aprovada." - -#: NOT FOUND IN SOURCE -msgid "Your request was rejected" -msgstr "Sua requisição foi rejeitada" - -#: etc/initialdata:445 -msgid "Your request was rejected." -msgstr "Sua requisição foi rejeitada." - -#: html/autohandler:253 -msgid "Your username or password is incorrect" -msgstr "Nome de usuário ou senha incorretos" - -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:151 -msgid "Zip" -msgstr "CEP" - -#: NOT FOUND IN SOURCE -msgid "[no subject]" -msgstr "[sem assunto]" - -#: html/Search/Elements/DisplayOptions:67 -msgid "[none]" -msgstr "[nenhum]" - -#: lib/RT/System.pm:89 -msgid "allow creation of saved searches" -msgstr "permite a criação de buscas salvas" - -#: lib/RT/System.pm:88 -msgid "allow loading of saved searches" -msgstr "permite a carga de buscas salvas" - -#: html/User/Elements/DelegateRights:82 -#. ($right->PrincipalObj->Object->SelfDescription) -msgid "as granted to %1" -msgstr "como outorgado a %1" - -#: html/Search/Results.html:85 -msgid "chart" -msgstr "gráfico" - -#: html/SelfService/Closed.html:51 -msgid "closed" -msgstr "fechado" - -#: html/Elements/SelectCustomFieldOperator:61 html/Elements/SelectMatch:57 -msgid "contains" -msgstr "contém" - -#: NOT FOUND IN SOURCE -msgid "content" -msgstr "conteúdo" - -#: NOT FOUND IN SOURCE -msgid "correspondence (probably) not sent" -msgstr "correspondência (provavelmente) não enviada" - -#: NOT FOUND IN SOURCE -msgid "correspondence sent" -msgstr "correspondência enviada" - -#: html/Admin/Queues/Modify.html:100 lib/RT/Date.pm:348 -msgid "days" -msgstr "dias" - -#: NOT FOUND IN SOURCE -msgid "dead" -msgstr "morto" - -#: NOT FOUND IN SOURCE -msgid "delete" -msgstr "remover" - -#: lib/RT/Queue_Overlay.pm:89 -msgid "deleted" -msgstr "removido" - -#: html/Search/Elements/PickBasics:63 -msgid "does not match" -msgstr "não satisfaz" - -#: html/Elements/SelectCustomFieldOperator:61 html/Elements/SelectMatch:58 -msgid "doesn't contain" -msgstr "não contém" - -#: html/Elements/SelectEqualityOperator:61 -msgid "equal to" -msgstr "igual a" - -#: html/Search/Build.html:553 -msgid "error: can't move down" -msgstr "erro: não pode mover para baixo" - -#: html/Search/Build.html:575 -msgid "error: can't move left" -msgstr "erro: não pode mover para a esquerda" - -#: html/Search/Build.html:534 -msgid "error: can't move up" -msgstr "erro: não pode mover para cima" - -#: html/Search/Build.html:618 -msgid "error: nothing to delete" -msgstr "erro: nada para remover" - -#: html/Search/Build.html:539 html/Search/Build.html:558 html/Search/Build.html:580 html/Search/Build.html:609 -msgid "error: nothing to move" -msgstr "erro: nada para mover" - -#: html/Search/Build.html:636 -msgid "error: nothing to toggle" -msgstr "erro: nada para alternar" - -#: NOT FOUND IN SOURCE -msgid "false" -msgstr "falso" - -#: NOT FOUND IN SOURCE -msgid "filename" -msgstr "nome do arquivo" - -#: html/Elements/SelectCustomFieldOperator:61 html/Elements/SelectEqualityOperator:61 -msgid "greater than" -msgstr "maior que" - -#: lib/RT/Group_Overlay.pm:216 -#. ($self->Name) -msgid "group '%1'" -msgstr "grupo '%1'" - -#: html/Search/Results.html:90 -#. ($m->scomp('Elements/SelectGroupBy', Name => 'PrimaryGroupBy', Query => $Query)) -msgid "grouped by %1" -msgstr "agrupado por %1" - -#: lib/RT/Date.pm:344 -msgid "hours" -msgstr "horas" - -#: html/Search/Elements/PickBasics:50 -msgid "id" -msgstr "identificador" - -#: html/Elements/SelectBoolean:55 html/Elements/SelectCustomFieldOperator:61 html/Elements/SelectMatch:59 html/Search/Elements/PickBasics:164 html/Search/Elements/PickBasics:76 html/Search/Elements/PickBasics:92 html/Search/Elements/PickCFs:55 -msgid "is" -msgstr "é" - -#: html/Elements/SelectBoolean:59 html/Elements/SelectCustomFieldOperator:61 html/Elements/SelectMatch:60 html/Search/Elements/PickBasics:165 html/Search/Elements/PickBasics:77 html/Search/Elements/PickBasics:93 html/Search/Elements/PickCFs:56 -msgid "isn't" -msgstr "não é" - -#: html/Elements/SelectCustomFieldOperator:61 html/Elements/SelectEqualityOperator:61 -msgid "less than" -msgstr "menor que" - -#: html/Search/Elements/PickBasics:62 -msgid "matches" -msgstr "satisfazem" - -#: lib/RT/Date.pm:340 -msgid "min" -msgstr "" - -#: html/Tools/MyDay.html:65 -msgid "minutes" -msgstr "minutos" - -#: NOT FOUND IN SOURCE -msgid "modifications\\n\\n" -msgstr "modificações\\n\\n" - -#: lib/RT/Date.pm:356 -msgid "months" -msgstr "meses" - -#: lib/RT/Queue_Overlay.pm:84 -msgid "new" -msgstr "novo" - -#: html/Admin/Elements/PickCustomFields:66 html/Admin/Elements/PickObjects:67 -msgid "no name" -msgstr "sem nome" - -#: html/Admin/Elements/EditScrips:66 -msgid "no value" -msgstr "sem valor" - -#: html/Admin/Elements/EditQueueWatchers:50 html/Ticket/Elements/EditWatchers:51 -msgid "none" -msgstr "nenhum" - -#: html/Elements/SelectEqualityOperator:61 -msgid "not equal to" -msgstr "diferente de" - -#: NOT FOUND IN SOURCE -msgid "notlike" -msgstr "diferente" - -#: html/SelfService/Elements/MyRequests:78 lib/RT/Queue_Overlay.pm:85 -msgid "open" -msgstr "aberto" - -#: lib/RT/Group_Overlay.pm:221 -#. ($self->Name, $user->Name) -msgid "personal group '%1' for user '%2'" -msgstr "grupo pessoal '%1' para o usuário '%2'" - -#: lib/RT/Group_Overlay.pm:229 -#. ($queue->Name, $self->Type) -msgid "queue %1 %2" -msgstr "fila %1 %2" - -#: lib/RT/Queue_Overlay.pm:88 -msgid "rejected" -msgstr "rejeitado" - -#: lib/RT/Queue_Overlay.pm:87 -msgid "resolved" -msgstr "resolvido" - -#: lib/RT/Date.pm:336 -msgid "sec" -msgstr "seg" - -#: lib/RT/System.pm:87 -msgid "show Configuration tab" -msgstr "mostrar aba de Configuração" - -#: html/Search/Results.html:82 -msgid "spreadsheet" -msgstr "planilha" - -#: lib/RT/Queue_Overlay.pm:86 -msgid "stalled" -msgstr "pendente" - -#: html/Search/Results.html:91 -#. ($m->scomp('Elements/SelectChartType', Name => 'ChartStyle')) -msgid "style: %1" -msgstr "Estilo: %1" - -#: html/Prefs/MyRT.html:95 -msgid "summary rows" -msgstr "linhas do sumário" - -#: lib/RT/Group_Overlay.pm:224 -#. ($self->Type) -msgid "system %1" -msgstr "sistema %1" - -#: lib/RT/Group_Overlay.pm:235 -#. ($self->Type) -msgid "system group '%1'" -msgstr "grupo do sistema '%1'" - -#: html/Elements/Error:66 html/SelfService/Error.html:65 -msgid "the calling component did not specify why" -msgstr "o componente chamador não especificou por que" - -#: lib/RT/Group_Overlay.pm:232 -#. ($self->Instance, $self->Type) -msgid "ticket #%1 %2" -msgstr "tíquete #%1 %2" - -#: NOT FOUND IN SOURCE -msgid "true" -msgstr "verdadeiro" - -#: lib/RT/Group_Overlay.pm:238 -#. ($self->Id) -msgid "undescribed group %1" -msgstr "grupo %1 sem descrição " - -#: NOT FOUND IN SOURCE -msgid "undescripbed group %1" -msgstr "grupo sem descrição %1" - -#: lib/RT/Group_Overlay.pm:213 -#. ($user->Object->Name) -msgid "user %1" -msgstr "usuário %1" - -#: lib/RT/Date.pm:352 -msgid "weeks" -msgstr "semanas" - -#: NOT FOUND IN SOURCE -msgid "with template %1" -msgstr "com modelo %1" - -#: lib/RT/Date.pm:360 -msgid "years" -msgstr "anos" - diff --git a/rt/lib/RT/I18N/pt_pt.po b/rt/lib/RT/I18N/pt_pt.po deleted file mode 100644 index fa32e0e33..000000000 --- a/rt/lib/RT/I18N/pt_pt.po +++ /dev/null @@ -1,5194 +0,0 @@ -# -msgid "" -msgstr "" -"Project-Id-Version: RT 3.5.x\n" -"PO-Revision-Date: 2008-05-12 12:00-0000\n" -"Last-Translator: RICARDO OLIVEIRA <rmo@eurotux.com>\n" -"Language-Team: rt-devel <rt-devel@lists.bestpractical.com>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: html/Widgets/SavedSearch:117 -#. ($self->{CurrentSearch}{Object}->Description) -msgid " %1 deleted." -msgstr " %1 apagado" - -#: html/Widgets/SavedSearch:94 -#. ($self->{CurrentSearch}{Description}, $args->{Description}) -msgid " %1 renamed to %2." -msgstr " %1 alterado para %2." - -#: html/Widgets/SavedSearch:107 -#. ($args->{Description}) -msgid " %1 saved." -msgstr " %1 gravado" - -#: html/Approvals/Elements/Approve:50 html/Approvals/Elements/ShowDependency:73 html/SelfService/Display.html:48 html/Ticket/Display.html:49 html/Ticket/Display.html:53 -#. ($Ticket->id, $Ticket->Subject) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -#. ($ticket->Id, $ticket->Subject) -#. ($TicketObj->Id, $TicketObj->Subject) -msgid "#%1: %2" -msgstr "#%1: %2" - -#: html/Elements/ShowSearch:116 -msgid "$1" -msgstr "$1" - -#: lib/RT/Record.pm:957 -#. ($label) -msgid "$prefix %1" -msgstr "$prefix %1" - -#: lib/RT/URI/fsck_com_rt.pm:258 -#. ($self->ObjectType, $self->Object->Id) -msgid "%1 #%2" -msgstr "%1 #%2" - -#: lib/RT/Date.pm:367 -#. ($s, $time_unit) -msgid "%1 %2" -msgstr "%1 %2" - -#: lib/RT/Tickets_Overlay.pm:1684 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) -msgid "%1 %2 %3" -msgstr "" - -#: lib/RT/Date.pm:403 -#. ($self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)) -msgid "%1 %2 %3 %4:%5:%6 %7" -msgstr "%1 %2 %3 %4:%5:%6 %7" - -#: lib/RT/Record.pm:1707 lib/RT/Transaction_Overlay.pm:668 lib/RT/Transaction_Overlay.pm:711 -#. ($cf->Name, $new_value->Content) -#. ($field, $self->NewValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 added" -msgstr "%1 %2 adicionado" - -#: lib/RT/Date.pm:364 -#. ($s, $time_unit) -msgid "%1 %2 ago" -msgstr "há %1 %2" - -#: lib/RT/Record.pm:1714 lib/RT/Transaction_Overlay.pm:675 -#. ($cf->Name, $old_content, $new_value->Content) -#. ($field, $self->OldValue, $self->NewValue) -msgid "%1 %2 changed to %3" -msgstr "%1 %2 alterado para %3" - -#: lib/RT/Record.pm:1711 lib/RT/Transaction_Overlay.pm:671 lib/RT/Transaction_Overlay.pm:717 -#. ($cf->Name, $old_value->Content) -#. ($field, $self->OldValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 deleted" -msgstr "%1 %2 apagado" - -#: html/Admin/Elements/EditScrips:67 html/Admin/Elements/ListGlobalScrips:65 html/Ticket/Elements/PreviewScrips:105 -#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) -msgid "%1 %2 with template %3" -msgstr "" - -#: html/Ticket/Elements/ShowAttachments:74 -#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) -msgid "%1 (%2) by %3" -msgstr "%1 (%2) por %3" - -#: html/SelfService/Update.html:62 html/Ticket/Elements/EditBasics:110 html/Ticket/Update.html:63 html/Ticket/Update.html:65 html/Tools/MyDay.html:71 -#. (loc($DefaultStatus)) -#. (loc($Ticket->Status())) -#. (loc($TicketObj->Status)) -#. ($TicketObj->OwnerObj->Name()) -msgid "%1 (Unchanged)" -msgstr "%1 (inalterado)" - -#: bin/rt-crontool:239 bin/rt-crontool:246 bin/rt-crontool:252 -#. ("--search-argument", "--search") -#. ("--condition-argument", "--condition") -#. ("--action-argument", "--action") -msgid "%1 - An argument to pass to %2" -msgstr "" - -#: bin/rt-crontool:264 -#. ("--verbose") -msgid "%1 - Output status updates to STDOUT" -msgstr "" - -#: bin/rt-crontool:255 -#. ("--template-id") -msgid "%1 - Specify id of the template you want to use" -msgstr "" - -#: bin/rt-crontool:258 -#. ("--transaction") -msgid "%1 - Specify if you want to use either 'first' or 'last' transaction" -msgstr "" - -#: bin/rt-crontool:249 -#. ("--action") -msgid "%1 - Specify the action module you want to use" -msgstr "" - -#: bin/rt-crontool:243 -#. ("--condition") -msgid "%1 - Specify the condition module you want to use" -msgstr "" - -#: bin/rt-crontool:236 -#. ("--search") -msgid "%1 - Specify the search module you want to use" -msgstr "" - -#: bin/rt-crontool:261 -#. ("--transaction-type") -msgid "%1 - Specify the type of a transaction you want to use" -msgstr "%1 - Especifique o tipo de transacção que quer usar" - -#: html/Elements/Footer:58 -#. ('»|«', $RT::VERSION, '2006', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -msgid "%1 RT %2 Copyright 1996-%3 %4." -msgstr "" - -#: lib/RT/ScripAction_Overlay.pm:152 -#. ($self->Id) -msgid "%1 ScripAction loaded" -msgstr "" - -#: lib/RT/Record.pm:1744 -#. ($args{'Value'}, $cf->Name) -msgid "%1 added as a value for %2" -msgstr "%1 adicionado como valor de %2" - -#: lib/RT/Link_Overlay.pm:146 lib/RT/Link_Overlay.pm:153 -#. ($args{'Base'}) -#. ($args{'Target'}) -msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "" - -#: html/Ticket/Elements/ShowDates:75 lib/RT/Transaction_Overlay.pm:552 -#. ($self->BriefDescription , $self->CreatorObj->Name) -#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) -msgid "%1 by %2" -msgstr "%1 por %2" - -#: lib/RT/Record.pm:534 lib/RT/Transaction_Overlay.pm:619 lib/RT/Transaction_Overlay.pm:809 lib/RT/Transaction_Overlay.pm:818 lib/RT/Transaction_Overlay.pm:821 -#. ($args{'Field'}, ( $old_val ? "'$old_val'" : $self->loc("(no value)") ), '"' . $self->__Value( $args{'Field'}) . '"') -#. ($self->Field, ( $self->OldValue ? "'" . $self->OldValue . "'" : $no_value ), "'" . $self->NewValue . "'") -#. ($self->Field , $q1->Name , $q2->Name) -#. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") -msgid "%1 changed from %2 to %3" -msgstr "%1 alterado de %2 para %3" - -#: html/Search/Build.html:215 -#. ($Description) -msgid "%1 copy" -msgstr "cópia %1" - -#: lib/RT/Record.pm:961 -msgid "%1 could not be set to %2." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2789 -#. ($self) -msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:592 -#. ($obj_type) -msgid "%1 created" -msgstr "%1 criado" - -#: lib/RT/Transaction_Overlay.pm:597 -#. ($obj_type) -msgid "%1 deleted" -msgstr "%1 apagado" - -#: etc/initialdata:593 -msgid "%1 highest priority tickets I own" -msgstr "%1 tickets com maior prioridade da minha responsabilidade" - -#: bin/rt-crontool:231 -#. ($0) -msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." -msgstr "" - -#: lib/RT/Queue_Overlay.pm:867 -#. ($principal->Object->Name, $args{'Type'}) -msgid "%1 is no longer a %2 for this queue." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1576 -#. ($principal->Object->Name, $args{'Type'}) -msgid "%1 is no longer a %2 for this ticket." -msgstr "" - -#: lib/RT/Record.pm:1801 -#. ($TransactionObj->OldValue, $cf->Name) -msgid "%1 is no longer a value for custom field %2" -msgstr "" - -#: html/Ticket/Elements/ShowTime:49 html/Ticket/Elements/ShowTime:51 -#. ($minutes) -msgid "%1 min" -msgstr "%1 min" - -#: etc/initialdata:601 -msgid "%1 newest unowned tickets" -msgstr "%1 tickets mais recentes sem responsável atribuído" - -#: lib/RT/CustomField_Overlay.pm:896 -msgid "%1 objects" -msgstr "" - -#: html/User/Elements/DelegateRights:99 -#. (loc($ObjectType =~ /^RT::(.*)$/)) -msgid "%1 rights" -msgstr "" - -#: lib/RT/Action/ResolveMembers.pm:65 -#. (ref $self) -msgid "%1 will resolve all members of a resolved group ticket." -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:897 -msgid "%1's %2 objects" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:898 -msgid "%1's %2's %3 objects" -msgstr "" - -#: html/Search/Elements/SearchPrivacy:54 html/Search/Elements/SelectSearchObject:57 html/Search/Elements/SelectSearchesForObjects:59 -#. ($object->Name) -#. ($Object->Name) -msgid "%1's saved searches" -msgstr "Pesquisas gravadas de %1" - -#: lib/RT/Transaction_Overlay.pm:502 -#. ($self) -msgid "%1: no attachment specified" -msgstr "%1: anexo não especificado" - -#: html/Ticket/Elements/ShowTransactionAttachments:80 -#. ($size) -msgid "%1b" -msgstr "" - -#: html/Ticket/Elements/ShowTransactionAttachments:77 -#. (int( $size / 102.4 ) / 10) -msgid "%1k" -msgstr "" - -#: html/Ticket/Elements/ShowTime:51 -#. (sprintf("%.1f",$minutes / 60)) -msgid "%quant(%1,hour)" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1144 -#. ($args{'Status'}) -msgid "'%1' is an invalid value for status" -msgstr "" - -#: html/Admin/Elements/EditCustomFieldValues:52 html/Admin/Elements/EditQueueWatchers:52 html/Admin/Elements/EditScrips:58 html/Admin/Elements/EditTemplates:59 html/Admin/Groups/Members.html:75 html/Elements/EditLinks:56 html/Ticket/Elements/EditPeople:69 html/User/Groups/Members.html:78 -msgid "(Check box to delete)" -msgstr "(Seleccione caixa para apagar)" - -#: html/Ticket/Elements/PreviewScrips:101 -msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "(Seleccione caixas para desactivar notificações para os destinatários listados)" - -#: html/Ticket/Elements/PreviewScrips:125 -msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "(Seleccione caixas para activar notificações para os destinatários listados)" - -#: html/Ticket/Create.html:221 -msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(Insira identificadores de tickets, separados por espaços)" - -#: html/Admin/Queues/Modify.html:77 html/Admin/Queues/Modify.html:83 -#. ($RT::CorrespondAddress) -#. ($RT::CommentAddress) -msgid "(If left blank, will default to %1)" -msgstr "(Por omissão será %1)" - -#: html/Admin/Elements/EditCustomFields:76 html/Admin/Elements/ListGlobalCustomFields:55 -msgid "(No custom fields)" -msgstr "" - -#: html/Admin/Groups/Members.html:73 html/User/Groups/Members.html:76 -msgid "(No members)" -msgstr "(Sem membros)" - -#: html/Admin/Elements/EditScrips:55 html/Admin/Elements/ListGlobalScrips:50 -msgid "(No scrips)" -msgstr "" - -#: html/Admin/Elements/EditTemplates:54 -msgid "(No templates)" -msgstr "" - -#: html/Admin/Elements/PickCustomFields:49 html/Admin/Elements/PickObjects:49 -msgid "(None)" -msgstr "(Nada)" - -#: html/Ticket/Update.html:92 -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "" - -#: html/Ticket/Create.html:105 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "" - -#: html/Ticket/Update.html:88 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "" - -#: html/Ticket/Create.html:95 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "" - -#: html/Admin/Elements/EditScrip:98 -msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "" - -#: html/Ticket/Elements/EditWatchers:62 html/Ticket/Elements/ShowUserEntry:55 -msgid "(Will not be sent email)" -msgstr "(Não vai ser enviado email)" - -#: html/Tools/MyDay.html:53 -#. ($session{'CurrentUser'}->Name) -msgid "(displaying new and open tickets for %1)" -msgstr "(mostrar tickets novos e abertos de %1)" - -#: html/Admin/Groups/index.html:59 html/User/Groups/index.html:56 -msgid "(empty)" -msgstr "(vazio)" - -#: html/Admin/Users/index.html:62 -msgid "(no name listed)" -msgstr "(sem nome)" - -#: html/Admin/Elements/SelectRights:74 html/Elements/EditCustomFieldSelect:71 html/Elements/SelectCustomFieldValue:53 html/Elements/ShowCustomFields:56 html/Search/Chart:134 html/Search/Elements/Chart:78 lib/RT/Transaction_Overlay.pm:612 -msgid "(no value)" -msgstr "(sem valor)" - -#: html/Admin/Elements/EditCustomFieldValues:49 -msgid "(no values)" -msgstr "(sem valores)" - -#: html/Elements/EditLinks:133 html/Ticket/Elements/BulkLinks:51 -msgid "(only one ticket)" -msgstr "(apenas um ticket)" - -#: html/Elements/RT__Ticket/ColumnMap:151 -msgid "(pending approval)" -msgstr "(aprovações pendentes)" - -#: html/Elements/RT__Ticket/ColumnMap:154 -msgid "(pending other Collection)" -msgstr "" - -#: html/Admin/Users/Modify.html:73 -msgid "(required)" -msgstr "(obrigatório)" - -#: html/Ticket/Elements/ShowTransactionAttachments:84 -msgid "(untitled)" -msgstr "" - -#: html/Ticket/Elements/Reminders:135 -msgid "(yyyy/mm/dd)" -msgstr "" - -#: html/Elements/EditCustomFieldSelect:59 -msgid "-" -msgstr "" - -#: bin/rt-crontool:97 -msgid "--transaction argument could be only 'first' or 'last'" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:55 -msgid "<% $Ticket->Status%>" -msgstr "<% $Ticket->Status%>" - -#: html/Elements/SelectTicketTypes:50 -msgid "<% $_ %>" -msgstr "<% $_ %>" - -#: html/Search/Elements/SelectLinks:50 -msgid "<%$_%>" -msgstr "<%$_%>" - -#: html/Search/Elements/DisplayOptions:75 -msgid "<%$field%>" -msgstr "<%$field%>" - -#: html/Elements/CreateTicket:49 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" class=\"button\" value=\"New ticket in\" /> %1" -msgstr "<input type=\"submit\" class=\"button\" value=\"Novo Pedido em\" /> %1" - -#: docs/design_docs/string-extraction-guide.txt:54 lib/RT/StyleGuide.pod:785 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" value=\"New ticket in\"> %1" -msgstr "<input type=\"submit\" value=\"Novo Pedido em\"> %1" - -#: etc/initialdata:218 -msgid "A blank template" -msgstr "Template em branco" - -#: html/Admin/Users/Modify.html:375 -msgid "A password was not set, so user won't be able to login." -msgstr "Password não foi definida, portanto o utilizador não vai conseguir efectuar login." - -#: lib/RT/ACE_Overlay.pm:176 lib/RT/Principal_Overlay.pm:221 -msgid "ACE not found" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:855 -msgid "ACEs can only be created and deleted." -msgstr "" - -#: html/Search/Elements/SelectAndOr:48 -msgid "AND" -msgstr "E" - -#: html/User/Elements/Tabs:55 -msgid "About me" -msgstr "Sobre mim" - -#: html/Admin/Users/Modify.html:108 -msgid "Access control" -msgstr "Controle de Acesso" - -#: html/Admin/Elements/EditScrip:67 -msgid "Action" -msgstr "Acção" - -#: lib/RT/Scrip_Overlay.pm:174 -#. ($args{'ScripAction'}) -msgid "Action %1 not found" -msgstr "Acção %1 não encontrada" - -#: bin/rt-crontool:173 -msgid "Action committed.\\n" -msgstr "" - -#: lib/RT/Scrip_Overlay.pm:170 -msgid "Action is mandatory argument" -msgstr "" - -#: bin/rt-crontool:169 -msgid "Action prepared..." -msgstr "" - -#: html/Search/Build.html:87 -msgid "Add" -msgstr "Adicionar" - -#: html/Search/Bulk.html:94 -msgid "Add AdminCc" -msgstr "Adicionar AdminCc" - -#: html/Search/Bulk.html:90 -msgid "Add Cc" -msgstr "Adicionar Cc" - -#: html/Search/Elements/EditFormat:51 -msgid "Add Columns" -msgstr "Adicionar colunas" - -#: html/Search/Elements/PickCriteria:48 -msgid "Add Criteria" -msgstr "Adicionar critérios" - -#: html/Ticket/Create.html:149 html/Ticket/Update.html:118 -msgid "Add More Files" -msgstr "Adicionar mais ficheiros" - -#: html/Search/Bulk.html:86 -msgid "Add Requestor" -msgstr "" - -#: html/Admin/Elements/AddCustomFieldValue:48 -msgid "Add Value" -msgstr "" - -#: html/Admin/Global/Scrip.html:85 -msgid "Add a scrip which will apply to all queues" -msgstr "" - -#: html/Search/Build.html:111 html/Search/Build.html:96 -msgid "Add and Search" -msgstr "Adicionar e pesquisar" - -#: html/Search/Bulk.html:126 -msgid "Add comments or replies to selected tickets" -msgstr "Adicionar comentários ou respostas aos tickets seleccionados" - -#: html/Admin/Groups/Members.html:65 html/User/Groups/Members.html:62 -msgid "Add members" -msgstr "Adicionar membros" - -#: html/Admin/Queues/People.html:89 html/Ticket/Elements/AddWatchers:51 -msgid "Add new watchers" -msgstr "Adicionar novos watchers" - -#: html/Search/Build.html:87 -msgid "Add these terms to your search" -msgstr "Adicionar estes termos à sua pesquisa" - -#: html/Search/Bulk.html:160 -msgid "Add values" -msgstr "Adicionar valores" - -#: lib/RT/CustomField_Overlay.pm:110 -msgid "Add, delete and modify custom field values for objects" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:758 -#. ($args{'Type'}) -msgid "Added principal as a %1 for this queue" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1448 -#. ($self->loc($args{'Type'})) -msgid "Added principal as a %1 for this ticket" -msgstr "" - -#: html/Admin/Users/Modify.html:149 html/User/Prefs.html:135 -msgid "Address1" -msgstr "Endereço (1)" - -#: html/Admin/Users/Modify.html:154 html/User/Prefs.html:139 -msgid "Address2" -msgstr "Endereço (2)" - -#: html/Ticket/Create.html:100 -msgid "Admin Cc" -msgstr "" - -#: etc/initialdata:295 -msgid "Admin Comment" -msgstr "Comentário de Admin" - -#: etc/initialdata:274 -msgid "Admin Correspondence" -msgstr "" - -#: html/Admin/Queues/index.html:48 html/Admin/Queues/index.html:51 -msgid "Admin queues" -msgstr "" - -#: html/Admin/Global/index.html:49 html/Admin/Global/index.html:51 -msgid "Admin/Global configuration" -msgstr "" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:62 lib/RT/ACE_Overlay.pm:115 -msgid "AdminCc" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "AdminCustomField" -msgstr "" - -#: lib/RT/Group_Overlay.pm:165 -msgid "AdminGroup" -msgstr "" - -#: lib/RT/Group_Overlay.pm:167 -msgid "AdminGroupMembership" -msgstr "" - -#: lib/RT/System.pm:82 -msgid "AdminOwnPersonalGroups" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "AdminQueue" -msgstr "" - -#: lib/RT/System.pm:83 -msgid "AdminUsers" -msgstr "" - -#: html/Admin/Queues/People.html:71 html/Ticket/Elements/EditPeople:77 -msgid "Administrative Cc" -msgstr "" - -#: html/Ticket/Elements/Tabs:218 -msgid "Advanced" -msgstr "Avançado" - -#: html/Elements/SelectDateRelation:59 -msgid "After" -msgstr "" - -#: html/Search/Elements/PickCriteria:54 -msgid "Aggregator" -msgstr "Agregador" - -#: etc/initialdata:363 -msgid "All Approvals Passed" -msgstr "Todas as aprovações tratadas" - -#: html/Admin/Queues/index.html:77 -msgid "All Queues" -msgstr "Todas as Queues" - -#: html/Search/Elements/EditQuery:58 -msgid "And/Or" -msgstr "E/Ou" - -#: html/Admin/CustomFields/Modify.html:75 html/Admin/Elements/CustomFieldTabs:85 -msgid "Applies to" -msgstr "Aplica-se a" - -#: html/Search/Edit.html:66 -msgid "Apply" -msgstr "Aplicar" - -#: html/Search/Edit.html:66 -msgid "Apply your changes" -msgstr "Aplicar as alterações" - -#: html/Elements/Tabs:80 -msgid "Approval" -msgstr "Aprovação" - -#: html/Approvals/Display.html:67 html/Approvals/Elements/ShowDependency:65 html/Approvals/index.html:88 -#. ($Ticket->Id, $Ticket->Subject) -#. ($ticket->id, $msg) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Approval #%1: %2" -msgstr "Aprovação #%1: %2" - -#: html/Approvals/index.html:77 -#. ($ticket->Id) -msgid "Approval #%1: Notes not recorded due to a system error" -msgstr "" - -#: html/Approvals/index.html:75 -#. ($ticket->Id) -msgid "Approval #%1: Notes recorded" -msgstr "" - -#: etc/initialdata:351 -msgid "Approval Passed" -msgstr "" - -#: etc/initialdata:374 -msgid "Approval Rejected" -msgstr "" - -#: html/Approvals/Elements/Approve:71 -msgid "Approve" -msgstr "" - -#: etc/initialdata:504 etc/initialdata:506 -#. (# loc $note) -msgid "Approver's notes: %1" -msgstr "" - -#: lib/RT/Date.pm:446 -msgid "Apr." -msgstr "Apr" - -#: html/Search/Elements/DisplayOptions:83 -msgid "Asc" -msgstr "Asc" - -#: html/Elements/SelectSortOrder:58 -msgid "Ascending" -msgstr "Ascendente" - -#: lib/RT/Queue_Overlay.pm:98 -msgid "Assign and remove custom fields" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:98 -msgid "AssignCustomFields" -msgstr "" - -#: html/Search/Bulk.html:144 html/SelfService/Update.html:89 html/Ticket/ModifyAll.html:117 html/Ticket/Update.html:118 -msgid "Attach" -msgstr "Anexar" - -#: html/SelfService/Create.html:94 html/Ticket/Create.html:145 -msgid "Attach file" -msgstr "Anexar ficheiro" - -#: html/SelfService/Update.html:77 html/Ticket/Create.html:133 html/Ticket/Update.html:96 -msgid "Attached file" -msgstr "Ficheiro anexo" - -#: html/Ticket/ShowEmailRecord.html:54 html/Ticket/ShowEmailRecord.html:58 html/Ticket/ShowEmailRecord.html:61 -#. ($Attachment) -msgid "Attachment '%1' could not be loaded" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:510 -msgid "Attachment created" -msgstr "Anexo criado" - -#: lib/RT/Tickets_Overlay.pm:2134 -msgid "Attachment filename" -msgstr "" - -#: html/Ticket/Elements/ShowAttachments:49 -msgid "Attachments" -msgstr "Anexos" - -#: lib/RT/Attributes_Overlay.pm:173 -msgid "Attribute Deleted" -msgstr "" - -#: lib/RT/Date.pm:450 -msgid "Aug." -msgstr "Aug" - -#: etc/initialdata:221 -msgid "Autoreply" -msgstr "Resposta automática" - -#: etc/initialdata:72 -msgid "Autoreply To Requestors" -msgstr "Resposta automática para utilizadores" - -#: html/Widgets/SelectionBox:191 -msgid "Available" -msgstr "Disponível" - -#: html/Admin/Elements/CustomFieldTabs:67 html/Admin/Elements/GroupTabs:62 html/Admin/Elements/QueueTabs:62 html/Admin/Elements/UserTabs:60 html/Ticket/Elements/Tabs:115 html/User/Elements/GroupTabs:61 -msgid "Basics" -msgstr "Informação básica" - -#: html/Ticket/Update.html:90 -msgid "Bcc" -msgstr "Bcc" - -#: html/Admin/CustomFields/GroupRights.html:93 html/Admin/CustomFields/UserRights.html:76 html/Admin/Elements/EditScrip:91 -msgid "Be sure to save your changes" -msgstr "" - -#: html/Elements/SelectDateRelation:57 lib/RT/CurrentUser.pm:363 -msgid "Before" -msgstr "Antes" - -#: html/Elements/Logo:49 -msgid "Best Practical Solutions, LLC corporate logo" -msgstr "" - -#: etc/initialdata:217 -msgid "Blank" -msgstr "Branco" - -#: html/Search/Elements/EditFormat:86 -msgid "Bold" -msgstr "" - -#: html/Search/Results.html:81 -msgid "Bookmarkable link" -msgstr "" - -#: html/Ticket/Elements/ShowHistory:66 html/Ticket/Elements/ShowHistory:71 -msgid "Brief headers" -msgstr "" - -#: html/Ticket/Elements/Tabs:228 -msgid "Bulk Update" -msgstr "Actualização em bloco" - -#: lib/RT/User_Overlay.pm:1855 -msgid "Can not modify system users" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "Can this principal see this queue" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:382 -msgid "Can't add a custom field value without a name" -msgstr "" - -#: html/Admin/CustomFields/Objects.html:88 -#. ($Class) -msgid "Can't find a collection class for '%1'" -msgstr "" - -#: html/Search/Build.html:288 -msgid "Can't find a saved search to work with" -msgstr "Impossível encontrar a pesquisa gravada definida" - -#: lib/RT/Link_Overlay.pm:161 -msgid "Can't link a ticket to itself" -msgstr "" - -#: html/Widgets/SavedSearch:110 -#. (loc($self->{SearchType})) -msgid "Can't save %1" -msgstr "" - -#: html/Search/Build.html:292 -msgid "Can't save this search" -msgstr "Não é possível gravar esta pesquisa" - -#: lib/RT/Record.pm:1304 lib/RT/Record.pm:1380 -msgid "Can't specifiy both base and target" -msgstr "" - -#: html/autohandler:206 -#. ($msg) -msgid "Cannot create user: %1" -msgstr "Não é possível criar utilizador: %1" - -#: html/Admin/Elements/AddCustomFieldValue:64 html/Admin/Elements/EditCustomFieldValues:60 -msgid "Category" -msgstr "Categoria" - -#: etc/initialdata:50 html/Admin/Queues/People.html:67 html/SelfService/Create.html:73 html/Ticket/Create.html:90 html/Ticket/Elements/EditPeople:74 html/Ticket/Elements/ShowPeople:58 html/Ticket/Update.html:85 lib/RT/ACE_Overlay.pm:114 -msgid "Cc" -msgstr "" - -#: html/SelfService/Prefs.html:54 -msgid "Change password" -msgstr "Mudar password" - -#: html/Elements/Submit:80 -msgid "Check All" -msgstr "Seleccionar todos" - -#: html/SelfService/Update.html:80 html/Ticket/Create.html:136 html/Ticket/Update.html:99 -msgid "Check box to delete" -msgstr "Seleccione caixa para apagar" - -#: html/Admin/Elements/SelectRights:57 -msgid "Check box to revoke right" -msgstr "" - -#: html/Elements/EditLinks:149 html/Elements/EditLinks:86 html/Elements/ShowLinks:80 html/Ticket/Create.html:226 html/Ticket/Elements/BulkLinks:66 -msgid "Children" -msgstr "Filhos" - -#: html/NoAuth/js/util.js:203 -msgid "Choose a date" -msgstr "Escolha uma data" - -#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:143 -msgid "City" -msgstr "Cidade" - -#: html/Widgets/SelectionBox:214 -msgid "Clear" -msgstr "" - -#: html/Elements/Submit:82 -msgid "Clear All" -msgstr "Limpar todos" - -#: html/Helpers/CalPopup.html:53 -msgid "Close window" -msgstr "Fechar janela" - -#: html/Ticket/Elements/ShowDates:70 -msgid "Closed" -msgstr "Fechado" - -#: html/SelfService/Closed.html:48 html/SelfService/Elements/Tabs:81 -msgid "Closed tickets" -msgstr "Tickets fechados" - -#: lib/RT/CustomField_Overlay.pm:91 -msgid "Combobox: Select or enter multiple values" -msgstr "Seleccione ou insira valores múltiplos" - -#: lib/RT/CustomField_Overlay.pm:92 -msgid "Combobox: Select or enter one value" -msgstr "Seleccione ou insira um valor" - -#: lib/RT/CustomField_Overlay.pm:93 -msgid "Combobox: Select or enter up to %1 values" -msgstr "Seleccione ou insira até %1 valores" - -#: html/Ticket/Elements/ShowTransaction:193 html/Ticket/Elements/Tabs:187 -msgid "Comment" -msgstr "Comentário" - -#: html/Admin/Queues/Modify.html:81 -msgid "Comment Address" -msgstr "Morada de Comentário" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "Comment on tickets" -msgstr "Comentar tickets" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "CommentOnTicket" -msgstr "" - -#: html/Tools/MyDay.html:67 -msgid "Comments" -msgstr "Comentários" - -#: html/Ticket/ModifyAll.html:93 html/Ticket/Update.html:77 -msgid "Comments (Not sent to requestors)" -msgstr "Comentários (não so enviados para utilizadores)" - -#: html/Search/Bulk.html:130 -msgid "Comments (not sent to requestors)" -msgstr "Comentários (não so enviados para utilizadores)" - -#: html/Admin/Users/Modify.html:229 html/Ticket/Elements/ShowRequestor:69 -msgid "Comments about this user" -msgstr "Comentários sobre este utilizador" - -#: lib/RT/Transaction_Overlay.pm:655 -msgid "Comments added" -msgstr "Comentários adicionados" - -#: lib/RT/Action/Generic.pm:177 -msgid "Commit Stubbed" -msgstr "" - -#: html/Admin/Elements/EditScrip:61 -msgid "Condition" -msgstr "Condição" - -#: lib/RT/Scrip_Overlay.pm:186 -msgid "Condition is mandatory argument" -msgstr "Condição é argumento obrigatório" - -#: bin/rt-crontool:153 -msgid "Condition matches..." -msgstr "" - -#: lib/RT/Scrip_Overlay.pm:190 -msgid "Condition not found" -msgstr "" - -#: html/Elements/Tabs:87 -msgid "Configuration" -msgstr "Configuração" - -#: html/SelfService/Prefs.html:56 -msgid "Confirm" -msgstr "Confirmar" - -#: html/Admin/Elements/ModifyTemplate:67 html/Elements/SelectAttachmentField:50 html/Ticket/ModifyAll.html:121 -msgid "Content" -msgstr "Conteúdo" - -#: html/Elements/SelectAttachmentField:51 -msgid "Content-Type" -msgstr "" - -#: html/Search/Elements/EditSearches:67 -msgid "Copy" -msgstr "Copiar" - -#: etc/initialdata:286 -msgid "Correspondence" -msgstr "Correspondência" - -#: lib/RT/Transaction_Overlay.pm:651 -msgid "Correspondence added" -msgstr "Correspondência adicionada" - -#: lib/RT/Record.pm:1682 lib/RT/Record.pm:1729 -#. ($value_msg) -msgid "Could not add new custom field value: %1" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3062 lib/RT/Ticket_Overlay.pm:3070 lib/RT/Ticket_Overlay.pm:3087 -msgid "Could not change owner. " -msgstr "Não foi possível alterar responsável" - -#: html/Admin/CustomFields/Modify.html:163 -#. ($msg) -msgid "Could not create CustomField" -msgstr "" - -#: html/Admin/Elements/EditCustomField:115 -#. ($msg) -msgid "Could not create CustomField: %1" -msgstr "" - -#: html/User/Groups/Modify.html:100 lib/RT/Group_Overlay.pm:496 lib/RT/Group_Overlay.pm:503 -msgid "Could not create group" -msgstr "" - -#: html/Admin/Global/Template.html:94 html/Admin/Queues/Template.html:95 -#. ($msg) -msgid "Could not create template: %1" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1077 lib/RT/Ticket_Overlay.pm:409 -msgid "Could not create ticket. Queue not set" -msgstr "Não é possível criar pedido. Especifique uma fila." - -#: lib/RT/User_Overlay.pm:257 lib/RT/User_Overlay.pm:271 lib/RT/User_Overlay.pm:280 lib/RT/User_Overlay.pm:289 lib/RT/User_Overlay.pm:298 lib/RT/User_Overlay.pm:312 lib/RT/User_Overlay.pm:322 lib/RT/User_Overlay.pm:498 -msgid "Could not create user" -msgstr "Não foi possível criar utilizador" - -#: lib/RT/Queue_Overlay.pm:737 lib/RT/Ticket_Overlay.pm:1416 -msgid "Could not find or create that user" -msgstr "Não foi possível criar ou encontrar esse utilizador" - -#: lib/RT/Queue_Overlay.pm:804 lib/RT/Ticket_Overlay.pm:1497 -msgid "Could not find that principal" -msgstr "" - -#: html/Admin/CustomFields/Objects.html:71 -msgid "Could not load CustomField %1" -msgstr "" - -#: html/Admin/Groups/Members.html:114 html/User/Groups/Members.html:113 html/User/Groups/Modify.html:105 -msgid "Could not load group" -msgstr "" - -#: lib/RT/SavedSearch.pm:121 -#. ($privacy) -msgid "Could not load object for %1" -msgstr "" - -#: lib/RT/SavedSearch.pm:199 -msgid "Could not load search attribute" -msgstr "Não é possível carregar o atributo da pesquisa" - -#: lib/RT/Queue_Overlay.pm:756 -#. ($args{'Type'}) -msgid "Could not make that principal a %1 for this queue" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1437 -#. ($self->loc($args{'Type'})) -msgid "Could not make that principal a %1 for this ticket" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:864 -#. ($args{'Type'}) -msgid "Could not remove that principal as a %1 for this queue" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1564 -#. ($args{'Type'}) -msgid "Could not remove that principal as a %1 for this ticket" -msgstr "" - -#: lib/RT/User_Overlay.pm:193 -msgid "Could not set user info" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:161 -msgid "Couldn't add attachment" -msgstr "Não foi possível adicionar anexo" - -#: lib/RT/Group_Overlay.pm:1005 -msgid "Couldn't add member to group" -msgstr "Não foi possível adicionar membro a grupo" - -#: lib/RT/Record.pm:1741 lib/RT/Record.pm:1793 -#. ($Msg) -msgid "Couldn't create a transaction: %1" -msgstr "Não foi possível criar uma transacção: %1" - -#: lib/RT/Record.pm:970 -msgid "Couldn't find row" -msgstr "" - -#: lib/RT/Group_Overlay.pm:979 -msgid "Couldn't find that principal" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:412 -msgid "Couldn't find that value" -msgstr "" - -#: lib/RT/CurrentUser.pm:147 -#. ($self->Id) -msgid "Couldn't load %1 from the users database.\\n" -msgstr "" - -#: html/Admin/CustomFields/UserRights.html:151 -#. ($id) -msgid "Couldn't load Class %1" -msgstr "" - -#: html/Admin/CustomFields/GroupRights.html:109 -#. ($id) -msgid "Couldn't load CustomField %1" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2009 -#. ($self->Id) -msgid "Couldn't load copy of ticket #%1." -msgstr "" - -#: html/Admin/Groups/GroupRights.html:111 html/Admin/Groups/UserRights.html:98 -#. ($id) -msgid "Couldn't load group %1" -msgstr "" - -#: lib/RT/Link_Overlay.pm:204 lib/RT/Link_Overlay.pm:213 lib/RT/Link_Overlay.pm:240 -msgid "Couldn't load link" -msgstr "" - -#: html/Admin/Elements/ObjectCustomFields:85 html/Admin/Queues/CustomFields.html:61 html/Admin/Users/CustomFields.html:61 -#. ($id) -msgid "Couldn't load object %1" -msgstr "" - -#: html/Admin/Queues/People.html:144 -#. ($id) -msgid "Couldn't load queue" -msgstr "" - -#: html/Admin/Queues/GroupRights.html:124 html/Admin/Queues/UserRights.html:95 -#. ($id) -msgid "Couldn't load queue %1" -msgstr "" - -#: html/Admin/Elements/EditScrip:128 html/Admin/Elements/EditScrip:169 -#. ($id) -msgid "Couldn't load scrip #%1" -msgstr "" - -#: html/SelfService/Display.html:160 lib/RT/Action/CreateTickets.pm:682 -#. ($id) -msgid "Couldn't load ticket '%1'" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2637 -#. ($args{'URI'}) -msgid "Couldn't resolve '%1' into a URI." -msgstr "" - -#: lib/RT/Link_Overlay.pm:113 -#. ($args{'Base'}) -msgid "Couldn't resolve base '%1' into a URI." -msgstr "" - -#: lib/RT/Link_Overlay.pm:128 -#. ($args{'Target'}) -msgid "Couldn't resolve target '%1' into a URI." -msgstr "" - -#: html/Admin/Users/Modify.html:176 html/User/Prefs.html:155 -msgid "Country" -msgstr "País" - -#: html/Admin/Elements/CreateUserCalled:49 html/Admin/Elements/EditCustomField:86 html/Admin/Elements/EditScrip:135 html/Admin/Global/Template.html:67 html/Admin/Queues/Template.html:68 html/Elements/QuickCreate:67 html/Ticket/Create.html:171 html/Ticket/Create.html:238 -msgid "Create" -msgstr "Criar" - -#: etc/initialdata:135 -msgid "Create Tickets" -msgstr "Criar tickets" - -#: html/Admin/CustomFields/Modify.html:152 html/Admin/Elements/EditCustomField:98 -msgid "Create a CustomField" -msgstr "" - -#: html/Admin/Queues/CustomField.html:71 -#. ($QueueObj->Name()) -msgid "Create a CustomField for queue %1" -msgstr "" - -#: html/Admin/Groups/Modify.html:105 html/Admin/Groups/Modify.html:131 -msgid "Create a new group" -msgstr "Criar novo grupo" - -#: html/User/Groups/Modify.html:115 html/User/Groups/Modify.html:90 -msgid "Create a new personal group" -msgstr "" - -#: html/Ticket/Create.html:49 html/Ticket/Create.html:53 html/Ticket/Create.html:62 -msgid "Create a new ticket" -msgstr "Criar novo ticket" - -#: html/Admin/Users/Modify.html:256 html/Admin/Users/Modify.html:318 -msgid "Create a new user" -msgstr "Criar novo utilizador" - -#: html/Admin/Queues/Modify.html:127 -msgid "Create a queue" -msgstr "Criar queue" - -#: html/Admin/Queues/Scrip.html:91 -#. ($QueueObj->Name) -msgid "Create a scrip for queue %1" -msgstr "" - -#: html/Admin/Global/Template.html:87 html/Admin/Queues/Template.html:88 -msgid "Create a template" -msgstr "Criar template" - -#: html/SelfService/Create.html:48 html/SelfService/CreateTicketInQueue.html:48 -msgid "Create a ticket" -msgstr "Criar ticket" - -#: etc/initialdata:137 -msgid "Create new tickets based on this scrip's template" -msgstr "Criar novo pedido baseado num modelo existente" - -#: html/SelfService/Create.html:107 -msgid "Create ticket" -msgstr "Criar ticket" - -#: lib/RT/Queue_Overlay.pm:111 -msgid "Create tickets in this queue" -msgstr "Criar tickets nesta queue" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "Create, delete and modify custom fields" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "Create, delete and modify queues" -msgstr "" - -#: lib/RT/System.pm:82 -msgid "Create, delete and modify the members of personal groups" -msgstr "" - -#: lib/RT/System.pm:83 -msgid "Create, delete and modify users" -msgstr "" - -#: lib/RT/System.pm:89 -msgid "CreateSavedSearch" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:111 -msgid "CreateTicket" -msgstr "" - -#: html/Elements/SelectDateType:49 html/Ticket/Elements/ShowDates:50 lib/RT/Ticket_Overlay.pm:1171 -msgid "Created" -msgstr "Criado" - -#: html/Admin/CustomFields/Modify.html:165 html/Admin/Elements/EditCustomField:119 -#. ($CustomFieldObj->Name()) -msgid "Created CustomField %1" -msgstr "Campo Personalisado %1 criado" - -#: html/Tools/Reports/Elements/Tabs:65 -msgid "Created in a date range" -msgstr "" - -#: html/Tools/Reports/CreatedByDates.html:54 -msgid "Created tickets in period, grouped by status" -msgstr "Pedidos criados dentro de um periodo de tempo, agrupados por estado" - -#: html/Search/Elements/PickBasics:104 -msgid "Creator" -msgstr "" - -#: html/Elements/EditLinks:51 -msgid "Current Links" -msgstr "Links actuais" - -#: html/Admin/Elements/EditScrips:53 -msgid "Current Scrips" -msgstr "" - -#: html/Admin/Groups/Members.html:62 html/User/Groups/Members.html:65 -msgid "Current members" -msgstr "Membros actuais" - -#: html/Admin/Elements/SelectRights:53 -msgid "Current rights" -msgstr "Direitos actuais" - -#: html/Search/Elements/EditQuery:49 -msgid "Current search" -msgstr "Pesquisa actual" - -#: html/Admin/Queues/People.html:64 html/Ticket/Elements/EditPeople:68 -msgid "Current watchers" -msgstr "" - -#: html/Admin/Elements/SystemTabs:63 html/Admin/Elements/Tabs:64 html/Admin/Global/index.html:73 html/Admin/Users/Modify.html:209 html/Admin/index.html:79 html/Ticket/Elements/ShowSummary:58 -msgid "Custom Fields" -msgstr "" - -#: html/Admin/CustomFields/index.html:62 -#. ($lookup) -msgid "Custom Fields for %1" -msgstr "" - -#: html/Admin/Elements/EditScrip:109 -msgid "Custom action cleanup code" -msgstr "" - -#: html/Admin/Elements/EditScrip:105 -msgid "Custom action preparation code" -msgstr "" - -#: html/Admin/Elements/EditScrip:101 -msgid "Custom condition" -msgstr "" - -#: lib/RT/Tickets_Overlay.pm:2619 -#. ($CF->Name, $args{OPERATOR}, $args{VALUE}) -msgid "Custom field %1 %2 %3" -msgstr "" - -#: lib/RT/Record.pm:1625 -#. ($args{'Field'}) -msgid "Custom field %1 does not apply to this object" -msgstr "" - -#: lib/RT/Tickets_Overlay.pm:2613 -#. ($CF->Name) -msgid "Custom field %1 has a value." -msgstr "" - -#: lib/RT/Tickets_Overlay.pm:2609 -#. ($CF->Name) -msgid "Custom field %1 has no value." -msgstr "" - -#: lib/RT/Record.pm:1614 lib/RT/Record.pm:1776 -#. ($args{'Field'}) -msgid "Custom field %1 not found" -msgstr "" - -#: lib/RT/Report/Tickets.pm:120 lib/RT/Report/Tickets.pm:123 -#. ($cf) -#. ($obj->Name) -msgid "Custom field '%1'" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:1160 -#. ($args{'Content'}, $self->Name) -msgid "Custom field value %1 could not be found for custom field %2" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:422 -msgid "Custom field value could not be deleted" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:1172 -msgid "Custom field value could not be found" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:1174 lib/RT/CustomField_Overlay.pm:420 -msgid "Custom field value deleted" -msgstr "" - -#: html/Elements/SelectGroups:53 html/Elements/SelectUsers:53 lib/RT/Transaction_Overlay.pm:659 -msgid "CustomField" -msgstr "" - -#: html/Prefs/MyRT.html:80 html/Prefs/Quicksearch.html:72 html/Prefs/Search.html:77 -msgid "Customize" -msgstr "" - -#: html/SelfService/Display.html:63 html/Ticket/Create.html:206 html/Ticket/Elements/ShowSummary:91 html/Ticket/Elements/Tabs:118 html/Ticket/ModifyAll.html:67 -msgid "Dates" -msgstr "Datas" - -#: lib/RT/Date.pm:454 -msgid "Dec." -msgstr "Dec" - -#: etc/initialdata:222 -msgid "Default Autoresponse template" -msgstr "" - -#: html/Tools/Offline.html:63 -msgid "Default Queue" -msgstr "Queue por omissão" - -#: html/Tools/Offline.html:72 -msgid "Default Requestor" -msgstr "" - -#: etc/initialdata:296 -msgid "Default admin comment template" -msgstr "" - -#: etc/initialdata:275 -msgid "Default admin correspondence template" -msgstr "" - -#: etc/initialdata:287 -msgid "Default correspondence template" -msgstr "" - -#: etc/initialdata:253 -msgid "Default transaction template" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:637 -#. ($type, $self->Field, ( $self->OldValue ? "'" . $self->OldValue . "'" : $self->loc("(no value)") ), "'" . $self->NewValue . "'") -msgid "Default: %1/%2 changed from %3 to %4" -msgstr "" - -#: html/User/Delegation.html:48 html/User/Delegation.html:51 -msgid "Delegate rights" -msgstr "" - -#: lib/RT/System.pm:86 -msgid "Delegate specific rights which have been granted to you." -msgstr "" - -#: lib/RT/System.pm:86 -msgid "DelegateRights" -msgstr "" - -#: html/User/Elements/Tabs:61 -msgid "Delegation" -msgstr "" - -#: html/Admin/Elements/EditScrips:77 html/Search/Elements/EditFormat:105 html/Search/Elements/EditQuery:59 html/Search/Elements/EditSearches:65 html/Widgets/SelectionBox:212 -msgid "Delete" -msgstr "Apagar" - -#: html/Admin/Elements/EditTemplates:81 -msgid "Delete Template" -msgstr "Apagar template" - -#: lib/RT/SavedSearch.pm:222 -#. ($msg) -msgid "Delete failed: %1" -msgstr "" - -#: html/Admin/Elements/EditScrips:76 -msgid "Delete selected scrips" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:116 -msgid "Delete tickets" -msgstr "Apagar tickets" - -#: html/Search/Bulk.html:161 -msgid "Delete values" -msgstr "Apagar valores" - -#: lib/RT/Queue_Overlay.pm:116 -msgid "DeleteTicket" -msgstr "" - -#: lib/RT/SavedSearch.pm:220 -msgid "Deleted search" -msgstr "Pesquisa apagada" - -#: lib/RT/Queue_Overlay.pm:396 -msgid "Deleting this object would break referential integrity" -msgstr "" - -#: lib/RT/User_Overlay.pm:514 -msgid "Deleting this object would violate referential integrity" -msgstr "" - -#: html/Approvals/Elements/Approve:75 -msgid "Deny" -msgstr "" - -#: html/Elements/EditLinks:141 html/Elements/EditLinks:68 html/Elements/ShowLinks:60 html/Ticket/Create.html:224 html/Ticket/Elements/BulkLinks:58 html/Ticket/Elements/ShowDependencies:55 -msgid "Depended on by" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:739 -#. ($value) -msgid "Dependency by %1 added" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:779 -#. ($value) -msgid "Dependency by %1 deleted" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:736 -#. ($value) -msgid "Dependency on %1 added" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:776 -#. ($value) -msgid "Dependency on %1 deleted" -msgstr "" - -#: html/Elements/EditLinks:137 html/Elements/EditLinks:59 html/Elements/SelectLinkType:50 html/Elements/ShowLinks:50 html/Ticket/Create.html:223 html/Ticket/Elements/BulkLinks:54 html/Ticket/Elements/ShowDependencies:48 -msgid "Depends on" -msgstr "" - -#: html/Search/Elements/DisplayOptions:88 -msgid "Desc" -msgstr "" - -#: html/Elements/SelectSortOrder:58 -msgid "Descending" -msgstr "Descendente" - -#: html/SelfService/Create.html:102 html/Ticket/Create.html:154 -msgid "Describe the issue below" -msgstr "Descreva o pedido, abaixo" - -#: html/Admin/CustomFields/Modify.html:63 html/Admin/Elements/AddCustomFieldValue:59 html/Admin/Elements/EditCustomField:62 html/Admin/Elements/EditCustomFieldValues:58 html/Admin/Elements/EditScrip:57 html/Admin/Elements/ModifyTemplate:59 html/Admin/Groups/Modify.html:73 html/Admin/Queues/Modify.html:71 html/Search/Elements/EditSearches:58 html/User/Groups/Modify.html:72 -msgid "Description" -msgstr "Descrição" - -#: html/Search/Elements/EditFormat:73 html/Ticket/Elements/Tabs:110 -msgid "Display" -msgstr "Mostrar" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "Display Access Control List" -msgstr "" - -#: html/Search/Elements/DisplayOptions:48 -msgid "Display Columns" -msgstr "Visualizar Colunas" - -#: lib/RT/Queue_Overlay.pm:101 -msgid "Display Scrip templates for this queue" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "Display Scrips for this queue" -msgstr "" - -#: html/Ticket/Elements/ShowHistory:61 -msgid "Display mode" -msgstr "Modo de visualização" - -#: lib/RT/Group_Overlay.pm:170 -msgid "Display saved searches for this group" -msgstr "Visualizar a pesquisa gravada para este grupo" - -#: html/Elements/Footer:63 -msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" -msgstr "" - -#: lib/RT/System.pm:77 -msgid "Do anything and everything" -msgstr "" - -#: html/Elements/Refresh:53 -msgid "Don't refresh this page." -msgstr "" - -#: html/Ticket/Elements/ShowTransactionAttachments:84 -msgid "Download" -msgstr "Descarregar" - -#: html/Admin/Groups/index.html:63 html/Admin/Users/index.html:66 -msgid "Download as a tab-delimited file" -msgstr "Descarregar num ficheiro separado por tabs" - -#: html/Elements/SelectDateType:55 html/Ticket/Create.html:212 html/Ticket/Elements/EditDates:68 html/Ticket/Elements/Reminders:135 html/Ticket/Elements/ShowDates:66 lib/RT/Ticket_Overlay.pm:1175 -msgid "Due" -msgstr "Prazo" - -#: html/Elements/Quicksearch:50 html/Elements/ShowSearch:51 html/index.html:109 -msgid "Edit" -msgstr "Editar" - -#: html/Search/Bulk.html:151 -msgid "Edit Custom Fields" -msgstr "Editar Campos Personalizados" - -#: html/Admin/Elements/ObjectCustomFields:94 html/Admin/Queues/CustomFields.html:66 html/Admin/Users/CustomFields.html:66 -#. ($Object->Name) -msgid "Edit Custom Fields for %1" -msgstr "Editar Campos Personalizados de %1" - -#: html/Admin/Global/CustomFields/Groups.html:56 -msgid "Edit Custom Fields for all groups" -msgstr "Editar Campos Personalizados para todos os grupos" - -#: html/Admin/Global/CustomFields/Users.html:56 -msgid "Edit Custom Fields for all users" -msgstr "Editar Campos Personalizados para todos os utilizadores" - -#: html/Admin/Global/CustomFields/Queue-Tickets.html:56 html/Admin/Global/CustomFields/Queue-Transactions.html:56 -msgid "Edit Custom Fields for tickets in all queues" -msgstr "Editar \"Campos Personalizados\" para todos os pedidos" - -#: html/Search/Bulk.html:190 html/Ticket/ModifyLinks.html:59 -msgid "Edit Links" -msgstr "Editar ligações" - -#: html/Search/Edit.html:70 -msgid "Edit Query" -msgstr "Editar Pesquisa" - -#: html/Ticket/Elements/Tabs:216 -msgid "Edit Search" -msgstr "Editar Pesquisa" - -#: html/Admin/Queues/Templates.html:65 -#. ($QueueObj->Name) -msgid "Edit Templates for queue %1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:169 -msgid "Edit saved searches for this group" -msgstr "Editar Pesquisas para este grupo" - -#: html/Admin/Elements/GlobalCustomFieldTabs:62 html/Admin/Global/index.html:69 -msgid "Edit system templates" -msgstr "Editar modelos de sistema" - -#: lib/RT/Group_Overlay.pm:169 -msgid "EditSavedSearches" -msgstr "" - -#: html/Admin/Queues/Modify.html:142 -#. ($QueueObj->Name) -msgid "Editing Configuration for queue %1" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:169 html/Admin/Elements/EditCustomField:122 -#. ($CustomFieldObj->Name()) -msgid "Editing CustomField %1" -msgstr "" - -#: html/Admin/Groups/Members.html:57 -#. ($Group->Name) -msgid "Editing membership for group %1" -msgstr "" - -#: html/User/Groups/Members.html:152 -#. ($Group->Name) -msgid "Editing membership for personal group %1" -msgstr "" - -#: lib/RT/Record.pm:1317 lib/RT/Record.pm:1394 lib/RT/Ticket_Overlay.pm:2512 lib/RT/Ticket_Overlay.pm:2602 -msgid "Either base or target must be specified" -msgstr "" - -#: html/Admin/Users/Modify.html:76 html/Ticket/Elements/AddWatchers:79 html/User/Prefs.html:67 -msgid "Email" -msgstr "Email" - -#: lib/RT/User_Overlay.pm:237 -msgid "Email address in use" -msgstr "Endereço de email já utilizado" - -#: html/Admin/CustomFields/Modify.html:100 html/Admin/Elements/EditCustomField:74 -msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "Activo (remover selecção desta caixa desactiva este campo)" - -#: html/Admin/Groups/Modify.html:89 html/User/Groups/Modify.html:76 -msgid "Enabled (Unchecking this box disables this group)" -msgstr "Activo (remover selecção desta caixa desactiva este grupo)" - -#: html/Admin/Queues/Modify.html:107 -msgid "Enabled (Unchecking this box disables this queue)" -msgstr "Activo (remover selecção desta caixa desactiva esta queue)" - -#: html/Admin/Queues/index.html:80 -msgid "Enabled Queues" -msgstr "Queues activas" - -#: html/Admin/Elements/EditCustomField:138 html/Admin/Groups/Modify.html:156 html/Admin/Users/Modify.html:354 html/User/Groups/Modify.html:140 -#. (loc_fuzzy($msg)) -msgid "Enabled status %1" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:187 html/Admin/Queues/Modify.html:164 -#. (loc_fuzzy($msg)) -msgid "Enabled status: %1" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:66 -msgid "Enter multiple values" -msgstr "" - -#: html/Elements/EditLinks:127 -msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:67 -msgid "Enter one value" -msgstr "Inserir um valor" - -#: html/Elements/EditLinks:124 -msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." -msgstr "Escreva as filas ou URIs para ligar as filas. Separe várias entradas com espaços." - -#: html/Elements/EditLinks:120 html/Search/Bulk.html:191 -msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "Escreva o número dos pedidos ou URIs para ligar os pedidos. Separe várias entradas com espaços." - -#: lib/RT/CustomField_Overlay.pm:68 -msgid "Enter up to %1 values" -msgstr "Inserir até %1 valores" - -#: html/Elements/Login:78 html/SelfService/Error.html:48 html/SelfService/Error.html:49 -msgid "Error" -msgstr "Erro" - -#: lib/RT/Queue_Overlay.pm:681 -msgid "Error in parameters to Queue->AddWatcher" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:837 -msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1376 -msgid "Error in parameters to Ticket->AddWatcher" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1531 -msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "" - -#: html/Search/Build.html:390 -#. ($val, $token, $string) -msgid "Error near ->%1<- expecting a %2 in '%3'" -msgstr "" - -#: bin/rt-crontool:287 -msgid "Escalate tickets" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:59 -msgid "Estimated" -msgstr "Estimado" - -#: etc/initialdata:20 -msgid "Everyone" -msgstr "Todos" - -#: bin/rt-crontool:273 -msgid "Example:" -msgstr "Exemplo:" - -#: html/Admin/Users/Modify.html:101 -msgid "Extra info" -msgstr "Informação adicional" - -#: lib/RT/SavedSearch.pm:179 -msgid "Failed to create search attribute" -msgstr "" - -#: lib/RT/User_Overlay.pm:378 -msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "" - -#: lib/RT/User_Overlay.pm:385 -msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "" - -#: bin/rt-crontool:208 -#. ($modname, $@) -msgid "Failed to load module %1. (%2)" -msgstr "" - -#: lib/RT/SavedSearch.pm:154 -#. ($privacy) -msgid "Failed to load object for %1" -msgstr "" - -#: lib/RT/Date.pm:444 -msgid "Feb." -msgstr "Feb" - -#: html/Elements/SelectAttachmentField:52 -msgid "Filename" -msgstr "Ficheiro" - -#: lib/RT/CustomField_Overlay.pm:71 -msgid "Fill in multiple text areas" -msgstr "Preencher múltiplas áreas de texto" - -#: lib/RT/CustomField_Overlay.pm:76 -msgid "Fill in multiple wikitext areas" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:72 -msgid "Fill in one text area" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:77 -msgid "Fill in one wikitext area" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:109 html/Admin/CustomFields/Modify.html:120 -msgid "Fill in this field with a URL." -msgstr "Preencha este campo com um URL" - -#: lib/RT/CustomField_Overlay.pm:73 -msgid "Fill in up to %1 text areas" -msgstr "Preencha até %1 áreas de texto" - -#: lib/RT/CustomField_Overlay.pm:78 -msgid "Fill in up to %1 wikitext areas" -msgstr "" - -#: html/Search/Elements/PickBasics:151 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:99 lib/RT/Tickets_Overlay.pm:2030 -msgid "Final Priority" -msgstr "Prioridade final" - -#: lib/RT/Ticket_Overlay.pm:1166 -msgid "FinalPriority" -msgstr "" - -#: html/Admin/Groups/index.html:74 html/Admin/Queues/People.html:84 html/Ticket/Elements/EditPeople:57 -msgid "Find groups whose" -msgstr "Encontrar grupos cujo" - -#: html/Admin/Queues/People.html:80 html/Admin/Users/index.html:72 html/Ticket/Elements/EditPeople:53 -msgid "Find people whose" -msgstr "Encontrar pessoas cujo" - -#: html/Search/Results.html:149 -msgid "Find tickets" -msgstr "Encontrar tickets" - -#: html/Ticket/Elements/Tabs:83 -msgid "First" -msgstr "Primeiro" - -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:764 -msgid "Foo Bar Baz" -msgstr "" - -#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:755 -msgid "Foo!" -msgstr "" - -#: html/Search/Bulk.html:85 -msgid "Force change" -msgstr "Forçar alteraçao" - -#: html/Search/Elements/EditFormat:54 -msgid "Format" -msgstr "" - -#: html/Search/Results.html:147 -#. ($ticketcount) -msgid "Found %quant(%1,ticket)" -msgstr "" - -#: lib/RT/Record.pm:973 -msgid "Found Object" -msgstr "" - -#: lib/RT/Date.pm:423 -msgid "Fri." -msgstr "Fri" - -#: html/Ticket/Elements/ShowHistory:68 html/Ticket/Elements/ShowHistory:74 -msgid "Full headers" -msgstr "Cabeçalhos completos" - -#: html/Tools/Offline.html:87 -msgid "Get template from file" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:705 -#. ($New->Name) -msgid "Given to %1" -msgstr "" - -#: html/Admin/Elements/Tabs:67 html/Admin/index.html:84 -msgid "Global" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:57 -msgid "Global Custom Fields" -msgstr "" - -#: html/Admin/Global/CustomFields/index.html:61 -msgid "Global custom field configuration" -msgstr "" - -#: html/Admin/Global/MyRT.html:95 -#. ($pane) -msgid "Global portlet %1 saved." -msgstr "" - -#: html/Admin/Elements/SelectTemplate:61 -#. (loc($Template->Name)) -msgid "Global template: %1" -msgstr "" - -#: html/Admin/CustomFields/index.html:82 html/Admin/Groups/index.html:69 html/Admin/Groups/index.html:75 html/Admin/Queues/People.html:82 html/Admin/Queues/People.html:86 html/Admin/Queues/index.html:68 html/Admin/Users/index.html:75 html/Approvals/index.html:54 html/Elements/RefreshHomepage:50 html/Search/Results.html:76 html/Search/Results.html:92 html/Ticket/Elements/EditPeople:55 html/Ticket/Elements/EditPeople:59 html/Tools/Offline.html:91 -msgid "Go!" -msgstr "" - -#: html/Elements/GotoTicket:48 html/SelfService/Elements/GotoTicket:48 -msgid "Goto ticket" -msgstr "Ir para ticket" - -#: html/Ticket/Elements/AddWatchers:69 html/Ticket/Elements/ShowGroupMembers:57 html/User/Elements/DelegateRights:101 -msgid "Group" -msgstr "Grupo" - -#: html/Admin/Elements/CustomFieldTabs:70 html/Admin/Elements/GroupTabs:68 html/Admin/Elements/QueueTabs:84 html/Admin/Elements/SystemTabs:67 html/Admin/Global/index.html:78 -msgid "Group Rights" -msgstr "Direitos do grupo" - -#: lib/RT/Group_Overlay.pm:985 -msgid "Group already has member" -msgstr "Grupo já tem membro" - -#: html/Admin/Groups/Modify.html:115 -#. ($create_msg) -msgid "Group could not be created: %1" -msgstr "Grupo não pôde ser criado: %1" - -#: lib/RT/Group_Overlay.pm:523 -msgid "Group created" -msgstr "Grupo criado" - -#: lib/RT/Group_Overlay.pm:1157 -msgid "Group has no such member" -msgstr "O grupo não tem esse membro" - -#: lib/RT/Group_Overlay.pm:965 lib/RT/Queue_Overlay.pm:743 lib/RT/Queue_Overlay.pm:810 lib/RT/Ticket_Overlay.pm:1423 lib/RT/Ticket_Overlay.pm:1503 -msgid "Group not found" -msgstr "Grupo não encontrado" - -#: html/Admin/Elements/GlobalCustomFieldTabs:61 html/Admin/Elements/SelectNewGroupMembers:59 html/Admin/Elements/Tabs:58 html/Admin/Global/CustomFields/index.html:71 html/Admin/Groups/Members.html:88 html/Admin/Queues/People.html:106 html/Admin/Users/Memberships.html:55 html/Admin/index.html:69 html/User/Groups/Members.html:90 lib/RT/CustomField_Overlay.pm:1213 -msgid "Groups" -msgstr "Grupos" - -#: lib/RT/Group_Overlay.pm:991 -msgid "Groups can't be members of their members" -msgstr "Grupos não podem ser membros dos seus membros" - -#: html/Admin/Groups/index.html:88 -msgid "Groups matching search criteria" -msgstr "Grupos que preenchem critérios" - -#: html/Ticket/Elements/ShowRequestor:79 -msgid "Groups this user belongs to" -msgstr "Grupos a que este utilizador pertence" - -#: lib/RT/Interface/CLI.pm:96 lib/RT/Interface/CLI.pm:96 -msgid "Hello!" -msgstr "Olá!" - -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:771 -#. ($name) -msgid "Hello, %1" -msgstr "Olá, %1" - -#: html/Admin/Elements/GroupTabs:72 html/Admin/Elements/UserTabs:66 html/Ticket/Elements/ShowHistory:55 html/Ticket/Elements/Tabs:113 -msgid "History" -msgstr "Histórico" - -#: html/Admin/Groups/History.html:64 -#. ($GroupObj->Name) -msgid "History of the group %1" -msgstr "Histórico do grupo %1" - -#: html/Admin/Users/History.html:64 -#. ($UserObj->Name) -msgid "History of the user %1" -msgstr "Histórico do utilizador %1" - -#: html/Elements/Tabs:68 -msgid "Homepage" -msgstr "Home" - -#: html/Elements/SelectTimeUnits:50 -msgid "Hours" -msgstr "Horas" - -#: lib/RT/Base.pm:135 -#. (6) -msgid "I have %quant(%1,concrete mixer)." -msgstr "" - -#: html/Search/Build.html:466 lib/RT/Report/Tickets.pm:415 -msgid "I'm lost" -msgstr "Estou perdido" - -#: html/Ticket/Elements/ShowBasics:50 lib/RT/Tickets_Overlay.pm:1955 -msgid "Id" -msgstr "Id" - -#: html/Admin/Users/Modify.html:67 html/User/Prefs.html:62 -msgid "Identity" -msgstr "Identidade" - -#: etc/initialdata:429 -msgid "If an approval is rejected, reject the original and delete pending approvals" -msgstr "" - -#: html/Tools/Offline.html:76 -msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "Se nenhum Requerente for especificado, criar um pedido sem Requerente." - -#: html/Tools/Offline.html:67 -msgid "If no queue is specified, create tickets in this queue." -msgstr "Se nenhuma queue foi definida, criar tickets nesta queue" - -#: bin/rt-crontool:269 -msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." -msgstr "" - -#: html/Admin/Queues/People.html:128 html/Ticket/Modify.html:62 html/Ticket/ModifyAll.html:130 html/Ticket/ModifyPeople.html:62 -msgid "If you've updated anything above, be sure to" -msgstr "Se actualizou algo acima, certifique-se que" - -#: lib/RT/Record.pm:964 -msgid "Illegal value for %1" -msgstr "" - -#: lib/RT/Record.pm:967 -msgid "Immutable field" -msgstr "" - -#: html/Admin/Groups/index.html:67 -msgid "Include disabled groups in listing." -msgstr "Incluir grupos desactivados na listagem" - -#: html/Admin/Queues/index.html:67 -msgid "Include disabled queues in listing." -msgstr "Incluir queues desactivadas na listagem" - -#: html/Admin/Users/index.html:73 -msgid "Include disabled users in search." -msgstr "Incluir utilizadores desactivados na listagem" - -#: html/Admin/CustomFields/Modify.html:115 -msgid "Include page" -msgstr "Incluir página" - -#: html/Search/Build.html:492 lib/RT/Report/Tickets.pm:441 -msgid "Incomplete Query" -msgstr "Query incompleta" - -#: html/Search/Build.html:489 lib/RT/Report/Tickets.pm:438 -msgid "Incomplete query" -msgstr "Query incompleta" - -#: html/Search/Elements/PickBasics:150 lib/RT/Tickets_Overlay.pm:2005 -msgid "Initial Priority" -msgstr "Prioridade Inicial" - -#: lib/RT/Ticket_Overlay.pm:1165 lib/RT/Ticket_Overlay.pm:1167 -msgid "InitialPriority" -msgstr "" - -#: lib/RT/ScripAction_Overlay.pm:135 -msgid "Input error" -msgstr "" - -#: html/Elements/ValidateCustomFields:70 lib/RT/CustomField_Overlay.pm:1024 lib/RT/CustomField_Overlay.pm:1165 -#. ($self->FriendlyPattern) -#. ($CF->FriendlyPattern) -msgid "Input must match %1" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3522 -msgid "Internal Error" -msgstr "Erro interno" - -#: lib/RT/Record.pm:315 -#. ($id->{error_message}) -msgid "Internal Error: %1" -msgstr "Erro interno: %1" - -#: lib/RT/Group_Overlay.pm:670 -msgid "Invalid Group Type" -msgstr "" - -#: lib/RT/Principal_Overlay.pm:163 -msgid "Invalid Right" -msgstr "Direito Inválido" - -#: lib/RT/Record.pm:969 -msgid "Invalid data" -msgstr "Dados Inválidos" - -#: lib/RT/CustomField_Overlay.pm:210 lib/RT/CustomField_Overlay.pm:681 -#. ($msg) -msgid "Invalid pattern: %1" -msgstr "Padrão inválido: %1" - -#: lib/RT/Scrip_Overlay.pm:159 lib/RT/Template_Overlay.pm:246 -msgid "Invalid queue" -msgstr "Queue inválida" - -#: lib/RT/ACE_Overlay.pm:266 lib/RT/ACE_Overlay.pm:275 lib/RT/ACE_Overlay.pm:281 lib/RT/ACE_Overlay.pm:292 -msgid "Invalid right" -msgstr "Direito inválido" - -#: lib/RT/Record.pm:290 -#. ($key) -msgid "Invalid value for %1" -msgstr "Valor inválido para %1" - -#: lib/RT/Record.pm:1632 -msgid "Invalid value for custom field" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:426 -msgid "Invalid value for status" -msgstr "Valor inválido para estado" - -#: bin/rt-crontool:270 -msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." -msgstr "É muito importante que os utilizadores não privilegiados não possam executar esta ferramenta." - -#: bin/rt-crontool:271 -msgid "It is suggested that you create a non-privileged unix user with the correct group membership and RT access to run this tool." -msgstr "É sugerido que crie um utilizador não privilegiado com o grupo correcto e acesso ao RT para utilizar esta ferramenta." - -#: bin/rt-crontool:233 -msgid "It takes several arguments:" -msgstr "Necessários vários argumentos:" - -#: html/Search/Elements/EditFormat:87 -msgid "Italic" -msgstr "Itálico" - -#: lib/RT/Date.pm:443 -msgid "Jan." -msgstr "Jan" - -#: lib/RT/Group_Overlay.pm:168 -msgid "Join or leave this group" -msgstr "" - -#: lib/RT/Date.pm:449 -msgid "Jul." -msgstr "Jul" - -#: html/Ticket/Elements/Tabs:127 -msgid "Jumbo" -msgstr "" - -#: lib/RT/Date.pm:448 -msgid "Jun." -msgstr "Jun" - -#: html/Admin/Users/Modify.html:96 html/User/Prefs.html:78 -msgid "Language" -msgstr "Língua" - -#: html/Search/Elements/EditFormat:81 -msgid "Large" -msgstr "" - -#: html/Ticket/Elements/Tabs:98 -msgid "Last" -msgstr "Último" - -#: html/Ticket/Elements/EditDates:61 html/Ticket/Elements/ShowDates:62 -msgid "Last Contact" -msgstr "Último Contacto" - -#: html/Elements/SelectDateType:52 -msgid "Last Contacted" -msgstr "" - -#: html/Elements/SelectDateType:53 -msgid "Last Updated" -msgstr "Última actualização" - -#: html/Search/Elements/PickBasics:105 -msgid "LastUpdatedBy" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:70 -msgid "Left" -msgstr "Restante" - -#: html/Admin/Users/Modify.html:111 -msgid "Let this user access RT" -msgstr "Permitir que este utilizador aceda ao RT" - -#: html/Admin/Users/Modify.html:115 -msgid "Let this user be granted rights" -msgstr "Permitir que este utilizador tenha direitos" - -#: html/Search/Elements/EditFormat:70 -msgid "Link" -msgstr "Ligação" - -#: lib/RT/Record.pm:1328 -msgid "Link already exists" -msgstr "Ligação já existe" - -#: lib/RT/Record.pm:1342 -msgid "Link could not be created" -msgstr "Ligação não pôde ser criada" - -#: lib/RT/Record.pm:1348 -#. ($TransString) -msgid "Link created (%1)" -msgstr "Ligação criada (%1)" - -#: lib/RT/Record.pm:1409 -#. ($TransString) -msgid "Link deleted (%1)" -msgstr "Ligação apagada (%1)" - -#: lib/RT/Record.pm:1415 -msgid "Link not found" -msgstr "Ligação não encontrada" - -#: html/Ticket/ModifyLinks.html:48 html/Ticket/ModifyLinks.html:52 -#. ($Ticket->Id) -msgid "Link ticket #%1" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:104 -msgid "Link values to" -msgstr "Ligar valores a" - -#: lib/RT/Ticket_Overlay.pm:702 -msgid "Linking. Permission denied" -msgstr "Ligação. Permissão negada" - -#: html/Ticket/Create.html:219 html/Ticket/Elements/ShowSummary:97 html/Ticket/Elements/Tabs:122 html/Ticket/ModifyAll.html:80 -msgid "Links" -msgstr "Ligações" - -#: html/Search/Elements/EditSearches:77 -msgid "Load" -msgstr "Carregar" - -#: html/Search/Elements/EditSearches:75 -msgid "Load saved search:" -msgstr "Carregar pesquisa gravada:" - -#: lib/RT/System.pm:88 -msgid "LoadSavedSearch" -msgstr "" - -#: html/Admin/Tools/Configuration.html:66 -msgid "Loaded perl modules" -msgstr "Módulos perl carregados" - -#: lib/RT/SavedSearch.pm:113 -#. ($self->Name) -msgid "Loaded search %1" -msgstr "Pesquisa %1 carregada" - -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:128 -msgid "Location" -msgstr "Localização" - -#: html/Elements/Header:93 -#. ("<span>".$session{'CurrentUser'}->Name."</span>") -msgid "Logged in as %1" -msgstr "Ligado como %1" - -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:102 html/Elements/Login:70 html/Elements/Login:86 lib/RT/StyleGuide.pod:795 -msgid "Login" -msgstr "Entrar" - -#: html/Elements/Header:103 -msgid "Logout" -msgstr "Sair" - -#: lib/RT/CustomField_Overlay.pm:935 -msgid "Lookup type mismatch" -msgstr "" - -#: html/Search/Bulk.html:84 -msgid "Make Owner" -msgstr "Definir Proprietário" - -#: html/Search/Bulk.html:108 -msgid "Make Status" -msgstr "Definir estado" - -#: html/Search/Bulk.html:116 -msgid "Make date Due" -msgstr "Definir data como prazo" - -#: html/Search/Bulk.html:118 -msgid "Make date Resolved" -msgstr "" - -#: html/Search/Bulk.html:112 -msgid "Make date Started" -msgstr "" - -#: html/Search/Bulk.html:110 -msgid "Make date Starts" -msgstr "" - -#: html/Search/Bulk.html:114 -msgid "Make date Told" -msgstr "" - -#: html/Search/Bulk.html:104 -msgid "Make priority" -msgstr "Definir prioridade" - -#: html/Search/Bulk.html:106 -msgid "Make queue" -msgstr "" - -#: html/Search/Bulk.html:102 -msgid "Make subject" -msgstr "Definir assunto" - -#: lib/RT/Group_Overlay.pm:171 -msgid "Make this group visible to user" -msgstr "" - -#: html/Admin/index.html:80 -msgid "Manage custom fields and custom field values" -msgstr "" - -#: html/Admin/index.html:71 -msgid "Manage groups and group membership" -msgstr "Gerir grupos e membros de grupos" - -#: html/Admin/index.html:87 -msgid "Manage properties and configuration which apply to all queues" -msgstr "Gerir propriedades e configuração que se aplica a todas as queues" - -#: html/Admin/index.html:76 -msgid "Manage queues and queue-specific properties" -msgstr "Gerir queues e propriedades específicas das queues" - -#: html/Admin/index.html:66 -msgid "Manage users and passwords" -msgstr "Gerir utilizadores e passwords" - -#: lib/RT/Date.pm:445 -msgid "Mar." -msgstr "Mar" - -#: lib/RT/Date.pm:447 -msgid "May." -msgstr "May" - -#: lib/RT/Transaction_Overlay.pm:752 -#. ($value) -msgid "Member %1 added" -msgstr "Membro %1 adicionado" - -#: lib/RT/Transaction_Overlay.pm:792 -#. ($value) -msgid "Member %1 deleted" -msgstr "Membro %1 apagado" - -#: lib/RT/Group_Overlay.pm:1002 -msgid "Member added" -msgstr "Membro adicionado" - -#: lib/RT/Group_Overlay.pm:1164 -msgid "Member deleted" -msgstr "Membro apagado" - -#: lib/RT/Group_Overlay.pm:1168 -msgid "Member not deleted" -msgstr "Membro não apagado" - -#: html/Elements/SelectLinkType:49 -msgid "Member of" -msgstr "Membro de" - -#: html/Admin/Elements/GroupTabs:65 html/User/Elements/GroupTabs:65 -msgid "Members" -msgstr "Membros" - -#: lib/RT/Transaction_Overlay.pm:749 -#. ($value) -msgid "Membership in %1 added" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:789 -#. ($value) -msgid "Membership in %1 deleted" -msgstr "" - -#: html/Admin/Elements/UserTabs:63 -msgid "Memberships" -msgstr "" - -#: html/Admin/Users/Memberships.html:62 -#. ($UserObj->Name) -msgid "Memberships of the user %1" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2896 -msgid "Merge Successful" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2774 -msgid "Merge failed. Couldn't set EffectiveId" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2791 -msgid "Merge failed. Couldn't set Status" -msgstr "" - -#: html/Elements/EditLinks:132 html/Ticket/Elements/BulkLinks:50 -msgid "Merge into" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:755 -#. ($value) -msgid "Merged into %1" -msgstr "" - -#: html/Search/Bulk.html:145 html/Ticket/Update.html:120 -msgid "Message" -msgstr "Mensagem" - -#: html/Ticket/Elements/ShowTransactionAttachments:166 -msgid "Message body not shown because it is too large or is not plain text." -msgstr "Corpo da mensagem não apresentado porque é grande demais ou não é texto" - -#: lib/RT/Ticket_Overlay.pm:2445 -msgid "Message could not be recorded" -msgstr "Mensagem não pôde ser gravada" - -#: lib/RT/Ticket_Overlay.pm:2448 -msgid "Message recorded" -msgstr "Mensagem gravada" - -#: html/Ticket/Elements/PreviewScrips:124 -msgid "Messages about this ticket will not be sent to..." -msgstr "Mensagens sobre este ticket não serão enviadas a..." - -#: html/Elements/SelectTimeUnits:49 -msgid "Minutes" -msgstr "Minutos" - -#: html/Search/Build.html:496 lib/RT/Report/Tickets.pm:445 -msgid "Mismatched parentheses" -msgstr "" - -#: lib/RT/Record.pm:971 -msgid "Missing a primary key?: %1" -msgstr "" - -#: html/Admin/Users/Modify.html:196 html/User/Prefs.html:94 -msgid "Mobile" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "Modify Access Control List" -msgstr "Alterar Lista de Controle de Acessos" - -#: html/Admin/Elements/ObjectCustomFields:98 -#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) -msgid "Modify Custom Fields which apply to %1 for all %2" -msgstr "" - -#: html/Admin/Elements/ObjectCustomFields:100 -#. (loc(lc($Types))) -msgid "Modify Custom Fields which apply to all %1" -msgstr "" - -#: html/Admin/Global/GroupRights.html:108 html/Admin/Groups/GroupRights.html:96 html/Admin/Queues/GroupRights.html:109 -msgid "Modify Group Rights" -msgstr "Alterar Direitos de Grupo" - -#: html/Admin/Groups/Members.html:107 html/User/Groups/Members.html:103 -msgid "Modify Members" -msgstr "Alterar Membros" - -#: html/User/Delegation.html:60 -msgid "Modify Rights" -msgstr "Alterar Direitos" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "Modify Scrip templates for this queue" -msgstr "Alterar templates dos Scrips para esta queue" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "Modify Scrips for this queue" -msgstr "Alterar Scrips para esta queue" - -#: html/Admin/Global/UserRights.html:76 html/Admin/Groups/UserRights.html:78 html/Admin/Queues/UserRights.html:77 -msgid "Modify User Rights" -msgstr "Alterar Direitos de Utilizadores" - -#: html/Admin/Queues/CustomField.html:68 -#. ($QueueObj->Name()) -msgid "Modify a CustomField for queue %1" -msgstr "" - -#: html/Admin/Queues/Scrip.html:84 -#. ($QueueObj->Name) -msgid "Modify a scrip for queue %1" -msgstr "Alterar uma scrip da queue %1" - -#: html/Admin/Global/Scrip.html:77 -msgid "Modify a scrip that applies to all queues" -msgstr "Alterar uma scrip que se aplica a todas as queues" - -#: html/Admin/CustomFields/Objects.html:92 -#. ($CF->Name) -msgid "Modify associated objects for %1" -msgstr "" - -#: html/Ticket/ModifyDates.html:48 html/Ticket/ModifyDates.html:52 -#. ($TicketObj->Id) -msgid "Modify dates for #%1" -msgstr "Alterar datas de #%1" - -#: html/Ticket/ModifyDates.html:59 -#. ($TicketObj->Id) -msgid "Modify dates for ticket # %1" -msgstr "Alterar datas do ticket # %1" - -#: html/Admin/Elements/GlobalCustomFieldTabs:67 html/Admin/Global/index.html:74 -msgid "Modify global custom fields" -msgstr "" - -#: html/Admin/Elements/GlobalCustomFieldTabs:72 html/Admin/Global/GroupRights.html:48 html/Admin/Global/GroupRights.html:51 html/Admin/Global/index.html:79 -msgid "Modify global group rights" -msgstr "Alterar direitos de grupo globais" - -#: html/Admin/Global/GroupRights.html:56 -msgid "Modify global group rights." -msgstr "Alterar direitos de grupo globais" - -#: html/Admin/Global/UserRights.html:48 html/Admin/Global/UserRights.html:51 html/Admin/Global/index.html:83 -msgid "Modify global user rights" -msgstr "Alterar direitos de utilizador globais" - -#: html/Admin/Global/UserRights.html:56 -msgid "Modify global user rights." -msgstr "Alterar direitos de utilizador globais" - -#: lib/RT/Group_Overlay.pm:165 -msgid "Modify group metadata or delete group" -msgstr "" - -#: html/Admin/CustomFields/GroupRights.html:113 -#. ($CustomFieldObj->Name) -msgid "Modify group rights for custom field %1" -msgstr "" - -#: html/Admin/Groups/GroupRights.html:48 html/Admin/Groups/GroupRights.html:52 html/Admin/Groups/GroupRights.html:58 -#. ($GroupObj->Name) -msgid "Modify group rights for group %1" -msgstr "Alterar direitos de grupo para o grupo %1" - -#: html/Admin/Queues/GroupRights.html:48 html/Admin/Queues/GroupRights.html:52 -#. ($QueueObj->Name) -msgid "Modify group rights for queue %1" -msgstr "Alterar direitos de grupo para a queue %1" - -#: lib/RT/Group_Overlay.pm:167 -msgid "Modify membership roster for this group" -msgstr "" - -#: lib/RT/System.pm:84 -msgid "Modify one's own RT account" -msgstr "" - -#: html/Admin/Queues/People.html:48 html/Admin/Queues/People.html:52 -#. ($QueueObj->Name) -msgid "Modify people related to queue %1" -msgstr "Alterar pessoas relacionadas com a queue %1" - -#: html/Ticket/ModifyPeople.html:48 html/Ticket/ModifyPeople.html:52 html/Ticket/ModifyPeople.html:59 -#. ($Ticket->id) -#. ($Ticket->Id) -msgid "Modify people related to ticket #%1" -msgstr "Alterar pessoas relacionadas com o ticket %1" - -#: html/Admin/Queues/Scrips.html:69 -#. ($QueueObj->Name) -msgid "Modify scrips for queue %1" -msgstr "Alterar scrips da queue %1" - -#: html/Admin/Elements/GlobalCustomFieldTabs:58 html/Admin/Global/Scrips.html:67 html/Admin/Global/index.html:65 -msgid "Modify scrips which apply to all queues" -msgstr "Alterar scrips que se aplicam a todas as queues" - -#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:101 -#. (loc($TemplateObj->Name())) -msgid "Modify template %1" -msgstr "Alterar template %1" - -#: html/Admin/Global/Templates.html:67 -msgid "Modify templates which apply to all queues" -msgstr "Alterar templates que se aplicam a todas as queues" - -#: html/Admin/Global/index.html:87 -msgid "Modify the default \"RT at a glance\" view" -msgstr "Alterar a página principal" - -#: html/Admin/Groups/Modify.html:125 html/User/Groups/Modify.html:109 -#. ($Group->Name) -msgid "Modify the group %1" -msgstr "Alterar o grupo %1" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "Modify the queue watchers" -msgstr "" - -#: html/Admin/Users/Modify.html:313 -#. ($UserObj->Name) -msgid "Modify the user %1" -msgstr "Alterar o utilizador %1" - -#: html/Ticket/ModifyAll.html:60 -#. ($Ticket->Id) -msgid "Modify ticket # %1" -msgstr "Alterar o ticket # %1" - -#: html/Ticket/Modify.html:48 html/Ticket/Modify.html:51 html/Ticket/Modify.html:57 -#. ($TicketObj->Id) -msgid "Modify ticket #%1" -msgstr "Alterar ticket # %1" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "Modify tickets" -msgstr "Alterar tickets" - -#: html/Admin/CustomFields/UserRights.html:159 -#. ($CustomFieldObj->Name) -msgid "Modify user rights for custom field %1" -msgstr "" - -#: html/Admin/Groups/UserRights.html:48 html/Admin/Groups/UserRights.html:52 html/Admin/Groups/UserRights.html:58 -#. ($GroupObj->Name) -msgid "Modify user rights for group %1" -msgstr "Alterar direitos de utilizadores para o grupo %1" - -#: html/Admin/Queues/UserRights.html:48 html/Admin/Queues/UserRights.html:52 -#. ($QueueObj->Name) -msgid "Modify user rights for queue %1" -msgstr "Alterar direitos de utilizador para a queue %1" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "ModifyACL" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:110 -msgid "ModifyCustomField" -msgstr "" - -#: lib/RT/Group_Overlay.pm:168 -msgid "ModifyOwnMembership" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "ModifyQueueWatchers" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "ModifyScrips" -msgstr "" - -#: lib/RT/System.pm:84 -msgid "ModifySelf" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "ModifyTemplate" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "ModifyTicket" -msgstr "" - -#: lib/RT/Date.pm:419 -msgid "Mon." -msgstr "Mon" - -#: html/Ticket/Elements/ShowRequestor:63 -#. ($name) -msgid "More about %1" -msgstr "Mais sobre %1" - -#: html/Admin/Elements/PickCustomFields:85 -msgid "Move down" -msgstr "Mover para baixo" - -#: html/Admin/Elements/PickCustomFields:77 -msgid "Move up" -msgstr "Mover para cima" - -#: html/Admin/Elements/SelectSingleOrMultiple:50 -msgid "Multiple" -msgstr "Múltiplo" - -#: lib/RT/User_Overlay.pm:228 -msgid "Must specify 'Name' attribute" -msgstr "" - -#: html/SelfService/Elements/MyRequests:79 -#. ($friendly_status) -msgid "My %1 tickets" -msgstr "Os meus %1 tickets" - -#: html/Tools/Elements/Tabs:65 -msgid "My Day" -msgstr "" - -#: html/Approvals/index.html:48 html/Approvals/index.html:49 -msgid "My approvals" -msgstr "As minhas aprovações" - -#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 -msgid "My saved searches" -msgstr "As minhas pesquisas guardadas" - -#: html/Admin/CustomFields/Modify.html:60 html/Admin/Elements/AddCustomFieldValue:55 html/Admin/Elements/EditCustomField:57 html/Admin/Elements/EditCustomFieldValues:57 html/Admin/Elements/ModifyTemplate:51 html/Admin/Groups/Modify.html:67 html/Search/Bulk.html:159 html/User/Groups/Modify.html:67 -msgid "Name" -msgstr "Nome" - -#: lib/RT/User_Overlay.pm:235 -msgid "Name in use" -msgstr "Nome em utilização" - -#: html/Ticket/Elements/ShowDates:75 -msgid "Never" -msgstr "Nunca" - -#: html/Elements/EditLinks:118 -msgid "New Links" -msgstr "Novas Ligações" - -#: html/Admin/Users/Modify.html:121 html/User/Prefs.html:111 -msgid "New Password" -msgstr "Nova Password" - -#: etc/initialdata:332 -msgid "New Pending Approval" -msgstr "Novas aprovações pendentes" - -#: html/Ticket/Elements/Tabs:214 -msgid "New Search" -msgstr "Nova Pesquisa" - -#: html/Admin/Elements/CustomFieldTabs:95 html/Admin/Queues/CustomField.html:75 -msgid "New custom field" -msgstr "" - -#: html/Admin/Elements/GroupTabs:79 html/User/Elements/GroupTabs:75 -msgid "New group" -msgstr "Novo grupo" - -#: html/SelfService/Prefs.html:55 -msgid "New password" -msgstr "Nova password" - -#: lib/RT/User_Overlay.pm:818 -msgid "New password notification sent" -msgstr "" - -#: html/Admin/Elements/QueueTabs:97 -msgid "New queue" -msgstr "Nova queue" - -#: html/Ticket/Elements/Reminders:120 -msgid "New reminder:" -msgstr "Nova Nota" - -#: html/Admin/Elements/SelectRights:67 -msgid "New rights" -msgstr "Novos direitos" - -#: html/Admin/Global/Scrip.html:65 html/Admin/Global/Scrips.html:62 html/Admin/Queues/Scrip.html:73 html/Admin/Queues/Scrips.html:78 -msgid "New scrip" -msgstr "Novo scrip" - -#: html/Admin/Global/Template.html:80 html/Admin/Global/Templates.html:62 html/Admin/Queues/Template.html:81 html/Admin/Queues/Templates.html:73 -msgid "New template" -msgstr "Novo template" - -#: html/SelfService/Elements/Tabs:87 html/SelfService/Elements/Tabs:91 -msgid "New ticket" -msgstr "Novo ticket" - -#: lib/RT/Ticket_Overlay.pm:2751 -msgid "New ticket doesn't exist" -msgstr "Novo ticket não existe" - -#: html/Admin/Elements/UserTabs:83 -msgid "New user" -msgstr "Novo utilizador" - -#: html/Admin/Elements/CreateUserCalled:49 -msgid "New user called" -msgstr "Novo utilizador chamado" - -#: html/Admin/Queues/People.html:78 html/Ticket/Elements/EditPeople:52 -msgid "New watchers" -msgstr "" - -#: html/Helpers/CalPopup.html:60 html/Ticket/Elements/Tabs:94 -msgid "Next" -msgstr "Próximo" - -#: html/Elements/TicketList:108 -msgid "Next Page" -msgstr "Próxima Página" - -#: html/Admin/Users/Modify.html:86 html/User/Prefs.html:74 -msgid "Nickname" -msgstr "Nick" - -#: html/Admin/CustomFields/UserRights.html:147 -msgid "No Class defined" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:168 html/Admin/Elements/EditCustomField:121 -msgid "No CustomField" -msgstr "" - -#: html/Admin/CustomFields/GroupRights.html:105 -msgid "No CustomField defined" -msgstr "" - -#: html/Admin/Groups/GroupRights.html:107 html/Admin/Groups/UserRights.html:94 -msgid "No Group defined" -msgstr "Sem Grupo definido" - -#: lib/RT/Tickets_Overlay_SQL.pm:484 -msgid "No Query" -msgstr "" - -#: html/Admin/Queues/GroupRights.html:120 html/Admin/Queues/UserRights.html:91 -msgid "No Queue defined" -msgstr "" - -#: bin/rt-crontool:75 -msgid "No RT user found. Please consult your RT administrator.\\n" -msgstr "" - -#: html/Admin/Global/Template.html:98 html/Admin/Queues/Template.html:99 -msgid "No Template" -msgstr "" - -#: html/Approvals/Elements/Approve:79 -msgid "No action" -msgstr "" - -#: lib/RT/Record.pm:966 -msgid "No column specified" -msgstr "" - -#: html/Ticket/Elements/ShowRequestor:70 -msgid "No comment entered about this user" -msgstr "" - -#: lib/RT/Action/Generic.pm:187 lib/RT/Condition/Generic.pm:199 lib/RT/Search/ActiveTicketsInQueue.pm:79 lib/RT/Search/Generic.pm:136 lib/RT/Search/Googleish.pm:90 -#. (ref $self) -msgid "No description for %1" -msgstr "Sem descrição para %1" - -#: lib/RT/Users_Overlay.pm:192 -msgid "No group specified" -msgstr "Grupo não especificado" - -#: html/Admin/Groups/index.html:54 -msgid "No groups matching search criteria found." -msgstr "Nenhum grupo verificou o critério de pesquisa especificado." - -#: lib/RT/Ticket_Overlay.pm:2386 -msgid "No message attached" -msgstr "Sem mensagem anexada" - -#: lib/RT/User_Overlay.pm:1036 -msgid "No password set" -msgstr "Password não definida" - -#: lib/RT/Queue_Overlay.pm:363 -msgid "No permission to create queues" -msgstr "Sem permissão para criar queues" - -#: lib/RT/Ticket_Overlay.pm:1090 lib/RT/Ticket_Overlay.pm:422 -#. ($QueueObj->Name) -msgid "No permission to create tickets in the queue '%1'" -msgstr "Sem permissão para criar tickets na queue '%1'" - -#: lib/RT/User_Overlay.pm:188 -msgid "No permission to create users" -msgstr "Sem permissão para criar utilizadores" - -#: html/SelfService/Display.html:210 -msgid "No permission to display that ticket" -msgstr "Sem permissão para ver esse ticket" - -#: lib/RT/SavedSearch.pm:158 -msgid "No permission to save system-wide searches" -msgstr "Não tem permissão para gravar uma pesquisa de sistema" - -#: html/SelfService/Update.html:119 -msgid "No permission to view update ticket" -msgstr "Sem permissão para ver ou actualizar esse ticket" - -#: lib/RT/Ticket_Overlay.pm:1482 -msgid "No principal specified" -msgstr "" - -#: html/Admin/Queues/People.html:177 html/Admin/Queues/People.html:187 -msgid "No principals selected." -msgstr "" - -#: html/Admin/Queues/index.html:59 -msgid "No queues matching search criteria found." -msgstr "Nenhuma fila verificou os critérios de pesquisa especificados" - -#: html/Admin/Elements/SelectRights:108 -msgid "No rights found" -msgstr "" - -#: html/Admin/Elements/SelectRights:55 -msgid "No rights granted." -msgstr "" - -#: lib/RT/SavedSearch.pm:198 -msgid "No search loaded" -msgstr "Nenhuma pesquisa carregada" - -#: html/Search/Bulk.html:234 -msgid "No search to operate on." -msgstr "Nenhuma pesquisa possível" - -#: html/Elements/RT__Ticket/ColumnMap:139 html/Search/Results.rdf:80 -msgid "No subject" -msgstr "Sem assunto" - -#: html/Search/Chart:101 -msgid "No tickets found." -msgstr "Tickets não encontrados" - -#: lib/RT/Transaction_Overlay.pm:549 lib/RT/Transaction_Overlay.pm:586 -msgid "No transaction type specified" -msgstr "" - -#: html/Admin/Users/index.html:57 -msgid "No users matching search criteria found." -msgstr "Nenhum proprietário verificou o critério de pesquisa." - -#: lib/RT/Record.pm:963 -msgid "No value sent to _Set!\\n" -msgstr "" - -#: html/Elements/QuickCreate:61 -msgid "Nobody" -msgstr "Nobody" - -#: lib/RT/Record.pm:968 -msgid "Nonexistant field?" -msgstr "" - -#: html/Search/Chart:149 html/Search/Elements/Chart:90 -msgid "Not Set" -msgstr "Não definido" - -#: html/Elements/Header:98 -msgid "Not logged in." -msgstr "Desligado" - -#: lib/RT/Date.pm:399 -msgid "Not set" -msgstr "" - -#: html/NoAuth/Reminder.html:50 -msgid "Not yet implemented." -msgstr "" - -#: html/Approvals/Elements/Approve:83 -msgid "Notes" -msgstr "" - -#: lib/RT/User_Overlay.pm:821 -msgid "Notification could not be sent" -msgstr "Notificação não pôde ser enviada" - -#: etc/initialdata:101 -msgid "Notify AdminCcs" -msgstr "" - -#: etc/initialdata:97 -msgid "Notify AdminCcs as Comment" -msgstr "Notificar AdminCCS como Comentário" - -#: etc/initialdata:93 etc/upgrade/3.1.17/content:6 -msgid "Notify Ccs" -msgstr "" - -#: etc/initialdata:89 etc/upgrade/3.1.17/content:2 -msgid "Notify Ccs as Comment" -msgstr "Notificar CCs como Comentário" - -#: etc/initialdata:128 -msgid "Notify Other Recipients" -msgstr "" - -#: etc/initialdata:124 -msgid "Notify Other Recipients as Comment" -msgstr "Notificar outros recipientes como comentário" - -#: etc/initialdata:85 -msgid "Notify Owner" -msgstr "Notificar Proprietário" - -#: etc/initialdata:81 -msgid "Notify Owner as Comment" -msgstr "Notificar Proprietário como comentário" - -#: etc/initialdata:376 -msgid "Notify Owner of their rejected ticket" -msgstr "" - -#: etc/initialdata:365 -msgid "Notify Owner of their ticket has been approved by all approvers" -msgstr "" - -#: etc/initialdata:353 -msgid "Notify Owner of their ticket has been approved by some approver" -msgstr "" - -#: etc/initialdata:334 -msgid "Notify Owners and AdminCcs of new items pending their approval" -msgstr "" - -#: etc/initialdata:77 -msgid "Notify Requestors" -msgstr "Notificar Requerentes" - -#: etc/initialdata:111 -msgid "Notify Requestors and Ccs" -msgstr "Notificar Requerentes e CCs" - -#: etc/initialdata:106 -msgid "Notify Requestors and Ccs as Comment" -msgstr "Notificar Requerentes e CCs como comentário" - -#: etc/initialdata:120 -msgid "Notify Requestors, Ccs and AdminCcs" -msgstr "Notificar Requerentes, CCs e AdminCCs" - -#: etc/initialdata:116 -msgid "Notify Requestors, Ccs and AdminCcs as Comment" -msgstr "Notificar Requerentes, CCs e AdminCCs como comentário" - -#: lib/RT/Date.pm:453 -msgid "Nov." -msgstr "Nov" - -#: html/Search/Elements/SelectAndOr:49 -msgid "OR" -msgstr "OU" - -#: lib/RT/Record.pm:329 -msgid "Object could not be created" -msgstr "" - -#: lib/RT/Record.pm:130 -msgid "Object could not be deleted" -msgstr "" - -#: lib/RT/Record.pm:348 -msgid "Object created" -msgstr "" - -#: lib/RT/Record.pm:127 -msgid "Object deleted" -msgstr "Objecto apagado" - -#: html/Admin/CustomFields/Objects.html:74 html/Admin/Elements/ObjectCustomFields:65 -#. ($ObjectType) -#. ($LookupType) -msgid "Object of type %1 cannot take custom fields" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:970 -msgid "Object type mismatch" -msgstr "" - -#: lib/RT/Date.pm:452 -msgid "Oct." -msgstr "Oct" - -#: html/Tools/Elements/Tabs:57 -msgid "Offline" -msgstr "Offline" - -#: html/Tools/Offline.html:51 -msgid "Offline edits" -msgstr "" - -#: html/Tools/Offline.html:48 -msgid "Offline upload" -msgstr "" - -#: html/Elements/SelectDateRelation:58 -msgid "On" -msgstr "Em" - -#: lib/RT/Transaction_Overlay.pm:349 -#. ($self->CreatedAsString(), $self->CreatorObj->Name()) -msgid "On %1, %2 wrote:" -msgstr "" - -#: etc/initialdata:163 -msgid "On Comment" -msgstr "Em comentário" - -#: etc/initialdata:156 -msgid "On Correspond" -msgstr "Em Resposta" - -#: etc/initialdata:145 -msgid "On Create" -msgstr "Em Criação" - -#: etc/initialdata:184 -msgid "On Owner Change" -msgstr "Em Alteração de Dono" - -#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 -msgid "On Priority Change" -msgstr "Em Alteração de Prioridade" - -#: etc/initialdata:192 -msgid "On Queue Change" -msgstr "Em Alteração de Queue" - -#: etc/initialdata:198 -msgid "On Resolve" -msgstr "Em Resolução" - -#: etc/initialdata:169 -msgid "On Status Change" -msgstr "Em Alteração de Estado" - -#: etc/initialdata:150 -msgid "On Transaction" -msgstr "Em Transacção" - -#: html/Approvals/Elements/PendingMyApproval:72 -#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter' id='CreatedAfter' />") -msgid "Only show approvals for requests created after %1" -msgstr "" - -#: html/Approvals/Elements/PendingMyApproval:70 -#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore' id='CreatedBefore' />") -msgid "Only show approvals for requests created before %1" -msgstr "" - -#: html/Admin/CustomFields/index.html:77 -msgid "Only show custom fields for:" -msgstr "" - -#: etc/initialdata:139 -msgid "Open Tickets" -msgstr "Tickets Abertos" - -#: html/Ticket/Elements/Tabs:162 -msgid "Open it" -msgstr "Abrir" - -#: html/SelfService/Elements/Tabs:78 html/SelfService/index.html:48 -msgid "Open tickets" -msgstr "Tickets Abertos" - -#: etc/initialdata:140 -msgid "Open tickets on correspondence" -msgstr "Abrir Tickets em resposta" - -#: html/Prefs/MyRT.html:72 -msgid "Options" -msgstr "Opções" - -#: html/Search/Elements/DisplayOptions:61 -msgid "Order by" -msgstr "Ordenar por" - -#: html/Admin/Users/Modify.html:144 html/User/Prefs.html:131 -msgid "Organization" -msgstr "Organização" - -#: html/Approvals/Elements/Approve:55 -#. ($approving->Id, $approving->Subject) -msgid "Originating ticket: #%1" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:643 -msgid "Outgoing email about a comment recorded" -msgstr "Registado email sobre um comentário" - -#: lib/RT/Transaction_Overlay.pm:647 -msgid "Outgoing email recorded" -msgstr "Registado email" - -#: html/Admin/Queues/Modify.html:92 -msgid "Over time, priority moves toward" -msgstr "Com o passar do tempo, a prioridade altera-se para" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "Own tickets" -msgstr "Próprios tickets" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "OwnTicket" -msgstr "" - -#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:103 html/Ticket/Create.html:74 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/EditPeople:66 html/Ticket/Elements/EditPeople:67 html/Ticket/Elements/Reminders:131 html/Ticket/Elements/ShowPeople:50 html/Ticket/Update.html:64 lib/RT/ACE_Overlay.pm:112 lib/RT/Tickets_Overlay.pm:2195 -msgid "Owner" -msgstr "Dono" - -#: lib/RT/Ticket_Overlay.pm:539 -#. ($Owner->Name) -msgid "Owner '%1' does not have rights to own this ticket." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3100 -#. ($OldOwnerObj->Name, $NewOwnerObj->Name) -msgid "Owner changed from %1 to %2" -msgstr "Dono alterado de %1 para %2" - -#: lib/RT/Ticket_Overlay.pm:507 -msgid "Owner could not be set." -msgstr "Dono não pôde ser definido." - -#: lib/RT/Transaction_Overlay.pm:693 -#. ($Old->Name , $New->Name) -msgid "Owner forcibly changed from %1 to %2" -msgstr "Proprietário forçado de %1 para %2" - -#: html/Elements/TicketList:82 -#. ($Page, $pages) -msgid "Page %1 of %2" -msgstr "Página %1 de %2" - -#: html/Admin/Users/Modify.html:201 html/User/Prefs.html:98 -msgid "Pager" -msgstr "" - -#: html/Elements/EditLinks:145 html/Elements/EditLinks:77 html/Elements/ShowLinks:70 html/Ticket/Create.html:225 html/Ticket/Elements/BulkLinks:62 -msgid "Parents" -msgstr "" - -#: html/Elements/Login:97 html/User/Prefs.html:107 -msgid "Password" -msgstr "Password" - -#: html/NoAuth/Reminder.html:48 -msgid "Password Reminder" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:802 lib/RT/User_Overlay.pm:1047 -msgid "Password changed" -msgstr "Password alterada" - -#: lib/RT/User_Overlay.pm:1039 lib/RT/User_Overlay.pm:216 -#. ($RT::MinimumPasswordLength) -msgid "Password needs to be at least %1 characters long" -msgstr "A Password tem de ter pelo menos %1 caracteres" - -#: lib/RT/User_Overlay.pm:1046 -msgid "Password set" -msgstr "Password definida" - -#: html/User/Prefs.html:242 -#. (loc_fuzzy($msg)) -msgid "Password: %1" -msgstr "Password: %1" - -#: lib/RT/User_Overlay.pm:1032 -msgid "Password: Permission Denied" -msgstr "Password: Permissão Negada" - -#: html/Admin/Users/Modify.html:368 -msgid "Passwords do not match." -msgstr "As passwords não coincidem." - -#: html/User/Prefs.html:244 -msgid "Passwords do not match. Your password has not been changed" -msgstr "As passwords não coincidem. A sua password não foi alterada" - -#: html/Ticket/Elements/ShowSummary:64 html/Ticket/Elements/Tabs:121 html/Ticket/ModifyAll.html:74 -msgid "People" -msgstr "Pessoas" - -#: etc/initialdata:133 -msgid "Perform a user-defined action" -msgstr "" - -#: html/Admin/Tools/Configuration.html:96 -msgid "Perl configuration" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:582 lib/RT/ACE_Overlay.pm:592 lib/RT/ACE_Overlay.pm:602 lib/RT/ACE_Overlay.pm:667 lib/RT/Attribute_Overlay.pm:160 lib/RT/Attribute_Overlay.pm:166 lib/RT/Attribute_Overlay.pm:407 lib/RT/Attribute_Overlay.pm:416 lib/RT/Attribute_Overlay.pm:429 lib/RT/CurrentUser.pm:118 lib/RT/CurrentUser.pm:127 lib/RT/CustomField_Overlay.pm:1020 lib/RT/CustomField_Overlay.pm:1141 lib/RT/CustomField_Overlay.pm:1284 lib/RT/CustomField_Overlay.pm:174 lib/RT/CustomField_Overlay.pm:191 lib/RT/CustomField_Overlay.pm:202 lib/RT/CustomField_Overlay.pm:377 lib/RT/CustomField_Overlay.pm:406 lib/RT/CustomField_Overlay.pm:766 lib/RT/CustomField_Overlay.pm:939 lib/RT/CustomField_Overlay.pm:974 lib/RT/Group_Overlay.pm:1119 lib/RT/Group_Overlay.pm:1123 lib/RT/Group_Overlay.pm:1132 lib/RT/Group_Overlay.pm:1242 lib/RT/Group_Overlay.pm:1246 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:447 lib/RT/Group_Overlay.pm:544 lib/RT/Group_Overlay.pm:622 lib/RT/Group_Overlay.pm:630 lib/RT/Group_Overlay.pm:728 lib/RT/Group_Overlay.pm:732 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:924 lib/RT/Group_Overlay.pm:928 lib/RT/Group_Overlay.pm:941 lib/RT/Queue_Overlay.pm:1058 lib/RT/Queue_Overlay.pm:142 lib/RT/Queue_Overlay.pm:160 lib/RT/Queue_Overlay.pm:685 lib/RT/Queue_Overlay.pm:823 lib/RT/Queue_Overlay.pm:832 lib/RT/Queue_Overlay.pm:845 lib/RT/Scrip_Overlay.pm:151 lib/RT/Scrip_Overlay.pm:162 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:110 lib/RT/Template_Overlay.pm:279 lib/RT/Ticket_Overlay.pm:1380 lib/RT/Ticket_Overlay.pm:1515 lib/RT/Ticket_Overlay.pm:1525 lib/RT/Ticket_Overlay.pm:1539 lib/RT/Ticket_Overlay.pm:1656 lib/RT/Ticket_Overlay.pm:1976 lib/RT/Ticket_Overlay.pm:2119 lib/RT/Ticket_Overlay.pm:2289 lib/RT/Ticket_Overlay.pm:2339 lib/RT/Ticket_Overlay.pm:2519 lib/RT/Ticket_Overlay.pm:2532 lib/RT/Ticket_Overlay.pm:2608 lib/RT/Ticket_Overlay.pm:2621 lib/RT/Ticket_Overlay.pm:2742 lib/RT/Ticket_Overlay.pm:2756 lib/RT/Ticket_Overlay.pm:3007 lib/RT/Ticket_Overlay.pm:3018 lib/RT/Ticket_Overlay.pm:3024 lib/RT/Ticket_Overlay.pm:3241 lib/RT/Ticket_Overlay.pm:3245 lib/RT/Ticket_Overlay.pm:3388 lib/RT/Ticket_Overlay.pm:3516 lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:544 lib/RT/Transaction_Overlay.pm:572 lib/RT/Transaction_Overlay.pm:579 lib/RT/User_Overlay.pm:1178 lib/RT/User_Overlay.pm:1858 lib/RT/User_Overlay.pm:371 lib/RT/User_Overlay.pm:737 lib/RT/User_Overlay.pm:776 -msgid "Permission Denied" -msgstr "Permissão Negada" - -#: lib/RT/Template_Overlay.pm:240 lib/RT/Template_Overlay.pm:249 -msgid "Permission denied" -msgstr "Permissão Negada" - -#: lib/RT/Template_Overlay.pm:379 -msgid "Permissions denied" -msgstr "Permissão Negada" - -#: html/User/Elements/Tabs:58 -msgid "Personal Groups" -msgstr "Grupos Pessoais" - -#: html/User/Groups/index.html:53 html/User/Groups/index.html:63 -msgid "Personal groups" -msgstr "Grupos Pessoais" - -#: html/User/Elements/DelegateRights:60 -msgid "Personal groups:" -msgstr "Grupos Pessoais:" - -#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:83 -msgid "Phone numbers" -msgstr "Números de telefone" - -#: html/Elements/Header:95 html/Elements/Tabs:94 html/SelfService/Elements/Tabs:98 html/SelfService/Prefs.html:48 html/User/Prefs.html:48 html/User/Prefs.html:51 -msgid "Preferences" -msgstr "Preferências" - -#: html/Admin/Users/MyRT.html:122 -#. ($pane, $UserObj->Name) -msgid "Preferences %1 for user %2 ." -msgstr "Preferências %1 para utilizador %2 ." - -#: html/Prefs/MyRT.html:143 -#. ($pane) -msgid "Preferences saved for %1." -msgstr "Preferências gravadas para %1." - -#: lib/RT/Action/Generic.pm:197 -msgid "Prepare Stubbed" -msgstr "" - -#: html/Helpers/CalPopup.html:58 html/Ticket/Elements/Tabs:86 -msgid "Prev" -msgstr "" - -#: html/Elements/TicketList:105 -msgid "Previous Page" -msgstr "Página Anterior" - -#: lib/RT/ACE_Overlay.pm:159 lib/RT/ACE_Overlay.pm:241 lib/RT/ACE_Overlay.pm:571 -#. ($args{'PrincipalId'}) -msgid "Principal %1 not found." -msgstr "" - -#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:94 html/Ticket/Elements/ShowBasics:74 lib/RT/Tickets_Overlay.pm:1979 -msgid "Priority" -msgstr "Prioridade" - -#: html/Admin/Queues/Modify.html:88 -msgid "Priority starts at" -msgstr "Prioridade começa em" - -#: html/Search/Elements/EditSearches:52 -msgid "Privacy:" -msgstr "Privacidade:" - -#: etc/initialdata:25 -msgid "Privileged" -msgstr "Privilegiados" - -#: html/Admin/Users/Modify.html:346 html/User/Prefs.html:233 -#. (loc_fuzzy($msg)) -msgid "Privileged status: %1" -msgstr "" - -#: html/Admin/Users/index.html:104 -msgid "Privileged users" -msgstr "Utilizadores privilegiados" - -#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 -msgid "Pseudogroup for internal use" -msgstr "" - -#: html/Search/Build.html:123 -msgid "Query Builder" -msgstr "Construtor de Pesquisas" - -#: html/Search/Elements/Chart:103 -msgid "Query:" -msgstr "Pesquisa" - -#: html/Elements/QueueSummary:50 html/Elements/QuickCreate:56 html/Search/Elements/PickBasics:73 html/SelfService/Create.html:56 html/Ticket/Create.html:64 html/Ticket/Elements/EditBasics:59 html/Ticket/Elements/ShowBasics:78 html/Tools/Reports/CreatedByDates.html:87 html/Tools/Reports/ResolvedByDates.html:88 html/Tools/Reports/ResolvedByOwner.html:68 html/User/Elements/DelegateRights:103 lib/RT/Tickets_Overlay.pm:1806 -msgid "Queue" -msgstr "Queue" - -#: html/Admin/Queues/CustomField.html:65 html/Admin/Queues/Scrip.html:63 html/Admin/Queues/Scrips.html:71 html/Admin/Queues/Templates.html:67 -#. ($Queue) -#. ($id) -msgid "Queue %1 not found" -msgstr "Queue %1 não encontrada" - -#: html/Admin/Queues/Modify.html:66 -msgid "Queue Name" -msgstr "Nome da Queue" - -#: lib/RT/Queue_Overlay.pm:367 -msgid "Queue already exists" -msgstr "Essa Queue já existe" - -#: lib/RT/Queue_Overlay.pm:376 lib/RT/Queue_Overlay.pm:382 -msgid "Queue could not be created" -msgstr "A Queue não pôde ser criada" - -#: html/Ticket/Create.html:319 lib/t/regression/01ticket_link_searching.t:17 -msgid "Queue could not be loaded." -msgstr "" - -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:386 lib/RT/StyleGuide.pod:807 -msgid "Queue created" -msgstr "Queue criada" - -#: html/SelfService/Display.html:128 lib/RT/CustomField_Overlay.pm:199 -msgid "Queue not found" -msgstr "Queue não encontrada" - -#: html/Admin/Elements/Tabs:61 html/Admin/index.html:74 -msgid "Queues" -msgstr "Queues" - -#: html/Elements/MyAdminQueues:48 -msgid "Queues I administer" -msgstr "" - -#: html/Elements/MySupportQueues:48 -msgid "Queues I'm an AdminCc for" -msgstr "" - -#: html/Elements/Quicksearch:49 html/Prefs/Elements/Tabs:60 html/Prefs/Quicksearch.html:72 -msgid "Quick search" -msgstr "Pesquisa rápida" - -#: html/Elements/QuickCreate:49 -msgid "Quick ticket creation" -msgstr "Criação de tickets rápida" - -#: html/Search/Results.html:83 -msgid "RSS" -msgstr "RSS" - -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:794 -#. ($RT::VERSION, $RT::rtname) -msgid "RT %1 for %2" -msgstr "RT %1 para %2" - -#: html/Admin/index.html:48 html/Admin/index.html:49 -msgid "RT Administration" -msgstr "Administração RT" - -#: html/Elements/Error:65 html/SelfService/Error.html:64 -msgid "RT Error" -msgstr "Erro RT" - -#: html/SelfService/Elements/Tabs:72 html/SelfService/Elements/Tabs:74 -msgid "RT Self Service" -msgstr "RT Self Service" - -#: html/Admin/Tools/Configuration.html:75 -msgid "RT Variables" -msgstr "" - -#: html/Admin/Elements/SystemTabs:73 html/Admin/Elements/UserTabs:69 html/Admin/Global/MyRT.html:48 html/Admin/Global/MyRT.html:51 html/Admin/Global/MyRT.html:59 html/Admin/Global/index.html:86 html/Admin/Users/MyRT.html:68 html/Prefs/MyRT.html:68 html/Prefs/MyRT.html:80 html/User/Elements/Tabs:67 html/index.html:1 html/index.html:77 -msgid "RT at a glance" -msgstr "RT no geral" - -#: html/Admin/Users/MyRT.html:77 -#. ($UserObj->Name) -msgid "RT at a glance for the user %1" -msgstr "\"RT no geral\" do utilizador %1" - -#: html/Admin/CustomFields/Modify.html:119 -msgid "RT can include content from another web service when showing this custom field." -msgstr "" - -#: html/Admin/CustomFields/Modify.html:108 -msgid "RT can make this custom field's values into hyperlinks to another service." -msgstr "" - -#: html/Elements/SetupSessionCookie:102 -msgid "RT couldn't store your session." -msgstr "" - -#: html/Elements/Logo:51 html/Elements/PageLayout:176 -#. ($RT::rtname) -msgid "RT for %1" -msgstr "RT para %1" - -#: html/Search/Simple.html:62 -msgid "RT will look for anything else you enter in ticket subjects." -msgstr "" - -#: html/Admin/CustomFields/Modify.html:110 html/Admin/CustomFields/Modify.html:121 -msgid "RT will replace <tt>__id__</tt> and <tt>__CustomField__</tt> with the record id and custom field value, respectively" -msgstr "" - -#: html/Admin/Users/Modify.html:81 html/User/Prefs.html:71 -msgid "Real Name" -msgstr "Nome" - -#: html/Tools/MyDay.html:76 -msgid "Record all updates" -msgstr "Gravar todas as actualizações" - -#: lib/RT/Transaction_Overlay.pm:746 -#. ($value) -msgid "Reference by %1 added" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:786 -#. ($value) -msgid "Reference by %1 deleted" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:743 -#. ($value) -msgid "Reference to %1 added" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:783 -#. ($value) -msgid "Reference to %1 deleted" -msgstr "" - -#: html/Elements/EditLinks:104 html/Elements/EditLinks:157 html/Elements/ShowLinks:94 html/Ticket/Create.html:228 html/Ticket/Elements/BulkLinks:74 -msgid "Referred to by" -msgstr "Referido por" - -#: html/Elements/EditLinks:153 html/Elements/EditLinks:95 html/Elements/SelectLinkType:51 html/Elements/ShowLinks:84 html/Ticket/Create.html:227 html/Ticket/Elements/BulkLinks:70 -msgid "Refers to" -msgstr "Refere-se a" - -#: html/Elements/Refresh:59 -#. ($value/60) -msgid "Refresh this page every %1 minutes." -msgstr "Refrescar esta pagina de %1 em %1 minutos." - -#: lib/RT/Transaction_Overlay.pm:832 -#. ($ticket->Subject) -msgid "Reminder '%1' added" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:845 -#. ($ticket->Subject) -msgid "Reminder '%1' completed" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:838 -#. ($ticket->Subject) -msgid "Reminder '%1' reopened" -msgstr "" - -#: html/Ticket/Reminders.html:48 -#. ($Ticket->Id) -msgid "Reminder ticket #%1" -msgstr "" - -#: html/Elements/MyReminders:50 html/Ticket/Elements/ShowSummary:77 html/Ticket/Elements/Tabs:124 html/Ticket/Reminders.html:54 -msgid "Reminders" -msgstr "Lembretes" - -#: html/Ticket/Reminders.html:52 -#. ($Ticket->Id) -msgid "Reminders for ticket #%1" -msgstr "Notas para o pedido #%1" - -#: html/Search/Bulk.html:96 -msgid "Remove AdminCc" -msgstr "" - -#: html/Search/Bulk.html:92 -msgid "Remove Cc" -msgstr "" - -#: html/Search/Bulk.html:88 -msgid "Remove Requestor" -msgstr "" - -#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:149 -msgid "Reply" -msgstr "Responder" - -#: html/Admin/Queues/Modify.html:74 -msgid "Reply Address" -msgstr "Endereço de Resposta" - -#: html/Search/Bulk.html:131 html/Ticket/ModifyAll.html:96 html/Ticket/Update.html:80 -msgid "Reply to requestors" -msgstr "Responder aos Requerentes" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "Reply to tickets" -msgstr "Resposta a tickets" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "ReplyToTicket" -msgstr "" - -#: html/Tools/Elements/Tabs:61 html/Tools/Reports/index.html:48 html/Tools/Reports/index.html:49 -msgid "Reports" -msgstr "Relatórios" - -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:113 -msgid "Requestor" -msgstr "" - -#: html/SelfService/Create.html:65 html/Ticket/Create.html:82 html/Ticket/Elements/EditPeople:71 html/Ticket/Elements/ShowPeople:54 -msgid "Requestors" -msgstr "Requerentes" - -#: html/Admin/Queues/Modify.html:98 -msgid "Requests should be due in" -msgstr "" - -#: lib/RT/Attribute_Overlay.pm:148 -#. ('Object') -msgid "Required parameter '%1' not specified" -msgstr "" - -#: html/Elements/Submit:85 -msgid "Reset" -msgstr "" - -#: html/Admin/Users/MyRT.html:62 html/Prefs/MyRT.html:62 -msgid "Reset to default" -msgstr "" - -#: html/Admin/Users/Modify.html:186 html/User/Prefs.html:86 -msgid "Residence" -msgstr "Residência" - -#: html/Ticket/Elements/Tabs:158 -msgid "Resolve" -msgstr "Resolver" - -#: html/Ticket/Update.html:158 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Resolve ticket #%1 (%2)" -msgstr "Resolver ticket #%1 (%2)" - -#: etc/initialdata:323 html/Elements/SelectDateType:51 lib/RT/Ticket_Overlay.pm:1174 -msgid "Resolved" -msgstr "Resolvido" - -#: html/Tools/Reports/Elements/Tabs:57 -msgid "Resolved by owner" -msgstr "Resolvido pelo dono" - -#: html/Tools/Reports/Elements/Tabs:61 -msgid "Resolved in date range" -msgstr "Resolvido dentro do intervalo de datas" - -#: html/Tools/Reports/ResolvedByDates.html:54 -msgid "Resolved tickets in period, grouped by owner" -msgstr "Tickets resolvidos no período, agrupados por dono" - -#: html/Tools/Reports/ResolvedByOwner.html:52 -msgid "Resolved tickets, grouped by owner" -msgstr "Tickets resolvidos, agrupados por dono" - -#: html/Elements/ListActions:48 html/Search/Elements/NewListActions:49 -msgid "Results" -msgstr "Resultados" - -#: html/Admin/Users/Modify.html:128 html/User/Prefs.html:118 -msgid "Retype Password" -msgstr "Repita Password" - -#: html/Search/Elements/EditSearches:63 -msgid "Revert" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:632 -msgid "Right Delegated" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:322 -msgid "Right Granted" -msgstr "Direito concedido" - -#: lib/RT/ACE_Overlay.pm:180 -msgid "Right Loaded" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:697 lib/RT/ACE_Overlay.pm:718 -msgid "Right could not be revoked" -msgstr "" - -#: html/User/Delegation.html:87 -msgid "Right not found" -msgstr "Direito não encontrado" - -#: lib/RT/ACE_Overlay.pm:562 lib/RT/ACE_Overlay.pm:657 -msgid "Right not loaded." -msgstr "" - -#: lib/RT/ACE_Overlay.pm:714 -msgid "Right revoked" -msgstr "" - -#: html/Admin/Elements/UserTabs:72 -msgid "Rights" -msgstr "Direitos" - -#: html/Admin/CustomFields/UserRights.html:102 lib/RT/Interface/Web.pm:992 -#. ($object_type) -msgid "Rights could not be granted for %1" -msgstr "" - -#: html/Admin/CustomFields/UserRights.html:132 lib/RT/Interface/Web.pm:1021 -#. ($object_type) -msgid "Rights could not be revoked for %1" -msgstr "" - -#: html/Admin/Global/GroupRights.html:74 html/Admin/Queues/GroupRights.html:76 -msgid "Roles" -msgstr "Perfis" - -#: html/Prefs/MyRT.html:74 -msgid "Rows per box" -msgstr "Linhas por caixa" - -#: html/Search/Elements/DisplayOptions:95 -msgid "Rows per page" -msgstr "Linhas por página" - -#: lib/RT/Date.pm:424 -msgid "Sat." -msgstr "Sat" - -#: html/Prefs/MyRT.html:74 html/Prefs/Quicksearch.html:66 html/Prefs/Search.html:71 html/Prefs/Search.html:71 html/Search/Elements/EditSearches:72 html/Widgets/SelectionBox:222 -msgid "Save" -msgstr "Gravar" - -#: html/Admin/Groups/Modify.html:94 html/Admin/Queues/Modify.html:113 html/Admin/Queues/People.html:128 html/Admin/Users/Modify.html:243 html/Prefs/Quicksearch.html:66 html/Prefs/SearchOptions.html:65 html/SelfService/Prefs.html:60 html/Ticket/Modify.html:62 html/Ticket/ModifyAll.html:129 html/Ticket/ModifyDates.html:62 html/Ticket/ModifyLinks.html:63 html/Ticket/ModifyPeople.html:62 html/User/Groups/Modify.html:79 -msgid "Save Changes" -msgstr "Gravar Alterações" - -#: html/User/Prefs.html:183 -msgid "Save Preferences" -msgstr "Gravar Preferências" - -#: html/Ticket/Elements/PreviewScrips:133 -msgid "Save changes" -msgstr "Gravar alterações" - -#: lib/RT/SavedSearch.pm:175 -#. ($name) -msgid "Saved search %1" -msgstr "Pesquisa gravada %1" - -#: html/Search/Elements/EditSearches:102 html/Widgets/SavedSearch:154 -msgid "Saved searches" -msgstr "" - -#: html/Admin/Elements/ListGlobalScrips:62 html/Admin/Global/Scrip.html:79 html/Admin/Queues/Scrip.html:86 -#. ($scrip->Id) -#. ($id) -msgid "Scrip #%1" -msgstr "" - -#: lib/RT/Scrip_Overlay.pm:205 -msgid "Scrip Created" -msgstr "" - -#: html/Admin/Elements/EditScrip:54 -msgid "Scrip Fields" -msgstr "" - -#: html/Admin/Elements/EditScrips:111 -msgid "Scrip deleted" -msgstr "" - -#: html/Admin/Elements/QueueTabs:69 html/Admin/Elements/SystemTabs:56 html/Admin/Global/index.html:64 -msgid "Scrips" -msgstr "" - -#: html/Admin/Queues/Scrips.html:57 -msgid "Scrips which apply to all queues" -msgstr "" - -#: html/Elements/SimpleSearch:50 html/Search/Simple.html:67 -msgid "Search" -msgstr "Procurar" - -#: html/Prefs/SearchOptions.html:49 html/Prefs/SearchOptions.html:52 -msgid "Search Preferences" -msgstr "Preferências de pesquisa" - -#: lib/RT/SavedSearch.pm:117 -msgid "Search attribute load failure" -msgstr "Erro a carregar o atributo de pesquisa" - -#: html/Approvals/Elements/PendingMyApproval:61 -msgid "Search for approvals" -msgstr "Procurar nas aprovações" - -#: html/Search/Simple.html:77 -msgid "Search for tickets" -msgstr "Procurar tickets" - -#: html/Search/Simple.html:59 -msgid "Search for tickets. Enter <strong>id</strong> numbers, <strong>queues</strong> by name, Owners by <strong>username</strong> and Requestors by <strong>email address</strong>." -msgstr "" - -#: html/User/Elements/Tabs:64 -msgid "Search options" -msgstr "Opções de pesquisa" - -#: html/Search/Chart.html:58 -#. ($PrimaryGroupBy) -msgid "Search results grouped by %1" -msgstr "Resultados de pesquisa agrupados por %1" - -#: lib/RT/SavedSearch.pm:205 -#. ($msg) -msgid "Search update: %1" -msgstr "Actualização de pesquisa: %1" - -#: html/Search/Simple.html:61 -msgid "Searching the full text of every ticket can take a long time, but if you need to do it, you can search for any word in full ticket history for any word by typing <b>fulltext:<i>word</i></b>." -msgstr "Procurar com o texto completo pode levar muito tempo a realizar, mas se for realmente necessário, pode efectuar uma pesquisa por qualquer palavra no historial do pedido ao especificar <b>fulltext:<i>palavra</i></b>." - -#: bin/rt-crontool:267 -msgid "Security:" -msgstr "Segurança:" - -#: html/Elements/ShowCustomFields:102 -msgid "See also:" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:107 -msgid "See custom fields" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "See exact outgoing email messages and their recipeients" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "See ticket private commentary" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:105 -msgid "See ticket summaries" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:107 -msgid "SeeCustomField" -msgstr "" - -#: lib/RT/Group_Overlay.pm:171 -msgid "SeeGroup" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "SeeQueue" -msgstr "" - -#: html/Admin/CustomFields/index.html:48 html/Admin/CustomFields/index.html:51 -msgid "Select a Custom Field" -msgstr "" - -#: html/Admin/Groups/index.html:80 -msgid "Select a group" -msgstr "Escolha um grupo" - -#: html/Admin/Queues/index.html:56 -msgid "Select a queue" -msgstr "Escolha uma queue" - -#: html/SelfService/CreateTicketInQueue.html:50 -msgid "Select a queue for your new ticket" -msgstr "Escolha uma queue para o novo ticket" - -#: html/Admin/Users/index.html:48 html/Admin/Users/index.html:51 html/Admin/Users/index.html:54 -msgid "Select a user" -msgstr "Escolha um utilizador" - -#: html/Admin/Elements/CustomFieldTabs:92 -msgid "Select custom field" -msgstr "" - -#: html/Admin/Global/CustomFields/index.html:72 -msgid "Select custom fields for all user groups" -msgstr "" - -#: html/Admin/Global/CustomFields/index.html:67 -msgid "Select custom fields for all users" -msgstr "" - -#: html/Admin/Global/CustomFields/index.html:78 -msgid "Select custom fields for tickets in all queues" -msgstr "Seleccioned os \"Campos Personalizados\" para os pedidos em todas as filas" - -#: html/Admin/Global/CustomFields/index.html:85 -msgid "Select custom fields for transactions on tickets in all queues" -msgstr "" - -#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 -msgid "Select group" -msgstr "Escolha grupo" - -#: lib/RT/CustomField_Overlay.pm:61 -msgid "Select multiple values" -msgstr "Escolha múltiplos valores" - -#: lib/RT/CustomField_Overlay.pm:62 -msgid "Select one value" -msgstr "Escolha um valor" - -#: html/Admin/Elements/QueueTabs:94 -msgid "Select queue" -msgstr "Escolha a queue" - -#: html/Prefs/Quicksearch.html:55 -msgid "Select queues to be displayed on the \"RT at a glance\" page" -msgstr "Escolha queues para apresentação na página principal" - -#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:59 html/Admin/Queues/Scrip.html:69 html/Admin/Queues/Scrips.html:75 -msgid "Select scrip" -msgstr "" - -#: html/Admin/Global/Template.html:77 html/Admin/Global/Templates.html:59 html/Admin/Queues/Template.html:78 html/Admin/Queues/Templates.html:70 -msgid "Select template" -msgstr "Escolha template" - -#: lib/RT/CustomField_Overlay.pm:63 -msgid "Select up to %1 values" -msgstr "" - -#: html/Admin/Elements/UserTabs:80 -msgid "Select user" -msgstr "Escolha utilizador" - -#: html/Admin/Elements/EditCustomFields:60 -msgid "Selected Custom Fields" -msgstr "" - -#: html/Admin/CustomFields/Objects.html:61 -msgid "Selected objects" -msgstr "" - -#: html/Widgets/SelectionBox:220 -msgid "Selections modified. Please save your changes" -msgstr "" - -#: etc/initialdata:121 -msgid "Send mail to all watchers" -msgstr "Enviar email para todos os watchers" - -#: etc/initialdata:117 -msgid "Send mail to all watchers as a \"comment\"" -msgstr "Enviar email para todos os watchers como um comentário" - -#: etc/initialdata:112 -msgid "Send mail to requestors and Ccs" -msgstr "" - -#: etc/initialdata:107 -msgid "Send mail to requestors and Ccs as a comment" -msgstr "" - -#: etc/initialdata:78 -msgid "Sends a message to the requestors" -msgstr "" - -#: etc/initialdata:125 etc/initialdata:129 -msgid "Sends mail to explicitly listed Ccs and Bccs" -msgstr "" - -#: etc/initialdata:94 etc/upgrade/3.1.17/content:7 -msgid "Sends mail to the Ccs" -msgstr "" - -#: etc/initialdata:90 etc/upgrade/3.1.17/content:3 -msgid "Sends mail to the Ccs as a comment" -msgstr "" - -#: etc/initialdata:102 -msgid "Sends mail to the administrative Ccs" -msgstr "" - -#: etc/initialdata:98 -msgid "Sends mail to the administrative Ccs as a comment" -msgstr "" - -#: etc/initialdata:82 etc/initialdata:86 -msgid "Sends mail to the owner" -msgstr "Enviar email para o dono" - -#: lib/RT/Date.pm:451 -msgid "Sep." -msgstr "Sep" - -#: html/Ticket/Elements/ShowTransaction:161 -msgid "Show" -msgstr "Mostrar" - -#: html/Search/Elements/EditFormat:58 -msgid "Show Columns" -msgstr "" - -#: html/Ticket/Elements/Tabs:222 -msgid "Show Results" -msgstr "Mostrar Resultados" - -#: html/Approvals/Elements/PendingMyApproval:66 -msgid "Show approved requests" -msgstr "" - -#: html/Ticket/Create.html:391 -msgid "Show basics" -msgstr "Mostrar informação básica" - -#: html/Approvals/Elements/PendingMyApproval:67 -msgid "Show denied requests" -msgstr "" - -#: html/Ticket/Create.html:394 -msgid "Show details" -msgstr "Mostrar detalhes" - -#: html/Approvals/Elements/PendingMyApproval:65 -msgid "Show pending requests" -msgstr "Mostrar pedidos pendentes" - -#: html/Approvals/Elements/PendingMyApproval:68 -msgid "Show requests awaiting other approvals" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "ShowACL" -msgstr "" - -#: lib/RT/System.pm:87 -msgid "ShowConfigTab" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "ShowOutgoingEmail" -msgstr "" - -#: lib/RT/Group_Overlay.pm:170 -msgid "ShowSavedSearches" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "ShowScrips" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:101 -msgid "ShowTemplate" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:105 -msgid "ShowTicket" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "ShowTicketComments" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "Sign up as a ticket Requestor or ticket or queue Cc" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "Sign up as a ticket or queue AdminCc" -msgstr "" - -#: html/Admin/Users/Modify.html:234 html/User/Prefs.html:170 -msgid "Signature" -msgstr "Assinatura" - -#: html/Elements/Tabs:71 -msgid "Simple Search" -msgstr "Pesquisa Simples" - -#: html/Admin/Elements/SelectSingleOrMultiple:49 -msgid "Single" -msgstr "" - -#: html/Search/Elements/EditFormat:77 -msgid "Size" -msgstr "Tamanho" - -#: html/Elements/Header:91 -msgid "Skip Menu" -msgstr "" - -#: html/Search/Elements/EditFormat:80 -msgid "Small" -msgstr "Pequeno" - -#: html/Admin/CustomFields/Modify.html:122 -msgid "Some browsers may only load content from the same domain as your RT server." -msgstr "" - -#: html/Admin/Elements/AddCustomFieldValue:51 html/Admin/Elements/EditCustomFieldValues:56 -msgid "Sort" -msgstr "Ordenar" - -#: html/Admin/Elements/EditScrip:80 -msgid "Stage" -msgstr "" - -#: html/Elements/SelectDateType:50 html/Ticket/Elements/EditDates:55 html/Ticket/Elements/ShowDates:58 -msgid "Started" -msgstr "Iniciado" - -#: html/Elements/SelectDateType:54 html/Ticket/Create.html:211 html/Ticket/Elements/EditDates:50 html/Ticket/Elements/ShowDates:54 -msgid "Starts" -msgstr "Começa" - -#: html/Admin/Users/Modify.html:165 html/User/Prefs.html:147 -msgid "State" -msgstr "Estado" - -#: html/Search/Elements/PickBasics:89 html/SelfService/Update.html:59 html/Ticket/Create.html:68 html/Ticket/Elements/EditBasics:55 html/Ticket/Elements/ShowBasics:54 html/Ticket/Update.html:61 html/Tools/MyDay.html:70 lib/RT/Ticket_Overlay.pm:1168 lib/RT/Tickets_Overlay.pm:1840 -msgid "Status" -msgstr "Estado" - -#: etc/initialdata:309 -msgid "Status Change" -msgstr "Alteração de Estado" - -#: lib/RT/Transaction_Overlay.pm:605 -#. ("'" . $self->loc( $self->OldValue ) . "'", "'" . $self->loc( $self->NewValue ) . "'") -msgid "Status changed from %1 to %2" -msgstr "Alteração de estado de %1 para %2" - -#: html/Ticket/Elements/Tabs:180 -msgid "Steal" -msgstr "Roubar" - -#: lib/RT/Queue_Overlay.pm:119 -msgid "Steal tickets" -msgstr "Roubar tickets" - -#: lib/RT/Queue_Overlay.pm:119 -msgid "StealTicket" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:699 -#. ($Old->Name) -msgid "Stolen from %1" -msgstr "Roubado de %1" - -#: html/Search/Elements/EditFormat:83 -msgid "Style" -msgstr "" - -#: html/Elements/QuickCreate:54 html/Elements/SelectAttachmentField:49 html/Search/Bulk.html:134 html/SelfService/Create.html:81 html/SelfService/Update.html:67 html/Ticket/Create.html:110 html/Ticket/Elements/EditBasics:50 html/Ticket/Elements/Reminders:127 html/Ticket/ModifyAll.html:102 html/Ticket/Update.html:84 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:1922 -msgid "Subject" -msgstr "Assunto" - -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:813 lib/RT/Transaction_Overlay.pm:721 -#. ($self->Data) -msgid "Subject changed to %1" -msgstr "Assunto alterado para %1" - -#: html/Elements/Submit:77 -msgid "Submit" -msgstr "Enviar" - -#: lib/RT/Group_Overlay.pm:776 -msgid "Succeeded" -msgstr "" - -#: lib/RT/Date.pm:425 -msgid "Sun." -msgstr "Sun" - -#: lib/RT/System.pm:77 -msgid "SuperUser" -msgstr "" - -#: html/User/Elements/DelegateRights:100 -msgid "System" -msgstr "" - -#: html/Admin/Elements/ToolTabs:56 html/Admin/Tools/Configuration.html:50 -msgid "System Configuration" -msgstr "Configuração de Sistema" - -#: html/Admin/CustomFields/UserRights.html:100 html/Admin/CustomFields/UserRights.html:130 html/Admin/Elements/SelectRights:108 lib/RT/ACE_Overlay.pm:586 lib/RT/Interface/Web.pm:1020 lib/RT/Interface/Web.pm:991 -msgid "System Error" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:226 lib/RT/Transaction_Overlay.pm:232 -#. ($msg) -msgid "System Error: %1" -msgstr "" - -#: html/Admin/Tools/index.html:49 -msgid "System Tools" -msgstr "Ferramentas de Sistema" - -#: lib/RT/ACE_Overlay.pm:635 -msgid "System error. Right not delegated." -msgstr "" - -#: lib/RT/ACE_Overlay.pm:165 lib/RT/ACE_Overlay.pm:230 lib/RT/ACE_Overlay.pm:325 -msgid "System error. Right not granted." -msgstr "" - -#: html/Admin/CustomFields/GroupRights.html:60 html/Admin/Global/GroupRights.html:58 html/Admin/Groups/GroupRights.html:60 html/Admin/Queues/GroupRights.html:59 -msgid "System groups" -msgstr "Grupos de sistema" - -#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 -msgid "SystemRolegroup for internal use" -msgstr "" - -#: lib/RT/CurrentUser.pm:359 -msgid "TEST_STRING" -msgstr "" - -#: etc/initialdata:603 html/Search/Elements/EditFormat:74 html/Ticket/Elements/Tabs:172 -msgid "Take" -msgstr "Tomar" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "Take tickets" -msgstr "Tomar pedidos" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "TakeTicket" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:684 -msgid "Taken" -msgstr "" - -#: html/Admin/Elements/EditScrip:73 html/Tools/Offline.html:80 -msgid "Template" -msgstr "Template" - -#: html/Admin/Global/Template.html:110 html/Admin/Queues/Template.html:115 -#. ($TemplateObj->Id()) -msgid "Template #%1" -msgstr "Template $%1" - -#: html/Admin/Elements/EditTemplates:112 -msgid "Template deleted" -msgstr "Template apagado" - -#: lib/RT/Scrip_Overlay.pm:178 -msgid "Template is mandatory argument" -msgstr "" - -#: lib/RT/Scrip_Overlay.pm:182 -msgid "Template not found" -msgstr "" - -#: lib/RT/Template_Overlay.pm:346 -msgid "Template parsed" -msgstr "" - -#: lib/RT/Template_Overlay.pm:398 -msgid "Template parsing error" -msgstr "" - -#: html/Admin/Elements/QueueTabs:72 html/Admin/Elements/SystemTabs:59 html/Admin/Global/index.html:68 -msgid "Templates" -msgstr "Templates" - -#: lib/RT/CustomField_Overlay.pm:946 lib/RT/Record.pm:962 -msgid "That is already the current value" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:415 -msgid "That is not a value for this custom field" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1987 -msgid "That is the same value" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:307 lib/RT/ACE_Overlay.pm:616 -msgid "That principal already has that right" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:748 -#. ($args{'Type'}) -msgid "That principal is already a %1 for this queue" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1428 -#. ($self->loc($args{'Type'})) -msgid "That principal is already a %1 for this ticket" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:856 -#. ($args{'Type'}) -msgid "That principal is not a %1 for this queue" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1550 -#. ($args{'Type'}) -msgid "That principal is not a %1 for this ticket" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1983 -msgid "That queue does not exist" -msgstr "Essa queue não existe" - -#: lib/RT/Ticket_Overlay.pm:3250 -msgid "That ticket has unresolved dependencies" -msgstr "" - -#: lib/RT/Action/CreateTickets.pm:712 lib/RT/Ticket_Overlay.pm:3053 -msgid "That user already owns that ticket" -msgstr "Esse utilizador já é dono desse ticket" - -#: lib/RT/Ticket_Overlay.pm:2996 -msgid "That user does not exist" -msgstr "Esse utilizador não existe" - -#: lib/RT/User_Overlay.pm:391 -msgid "That user is already privileged" -msgstr "" - -#: lib/RT/User_Overlay.pm:412 -msgid "That user is already unprivileged" -msgstr "" - -#: lib/RT/User_Overlay.pm:404 -msgid "That user is now privileged" -msgstr "" - -#: lib/RT/User_Overlay.pm:425 -msgid "That user is now unprivileged" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3046 -msgid "That user may not own tickets in that queue" -msgstr "Esse utilizador não pode ser dono de tickets nessa queue" - -#: lib/RT/Link_Overlay.pm:235 -msgid "That's not a numerical id" -msgstr "" - -#: html/SelfService/Display.html:55 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:51 -msgid "The Basics" -msgstr "O Básico" - -#: lib/RT/ACE_Overlay.pm:114 -msgid "The CC of a ticket" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:115 -msgid "The administrative CC of a ticket" -msgstr "" - -#: bin/rt-crontool:277 -msgid "The following command will find all active tickets in the queue 'general' and set their priority to 99 if they haven't been touched in 4 hours:" -msgstr "" - -#: lib/RT/Record.pm:965 -msgid "The new value has been set." -msgstr "" - -#: lib/RT/ACE_Overlay.pm:112 -msgid "The owner of a ticket" -msgstr "O dono de um ticket" - -#: lib/RT/ACE_Overlay.pm:113 -msgid "The requestor of a ticket" -msgstr "" - -#: html/Admin/Elements/EditUserComments:49 -msgid "These comments aren't generally visible to the user" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:981 -msgid "This custom field does not apply to that object" -msgstr "" - -#: html/Admin/Tools/Configuration.html:52 -msgid "This feature is only available to system administrators" -msgstr "Esta funcionalidade está disponível apenas para os administradores do sistema" - -#: html/Elements/SetupSessionCookie:106 -#. ($RT::MasonSessionDir) -msgid "This may mean that that the directory '%1' isn't writable or a database table is missing or corrupt." -msgstr "" - -#: html/Ticket/Elements/PreviewScrips:98 -msgid "This message will be sent to..." -msgstr "Esta mensagem será enviada para..." - -#: bin/rt-crontool:268 -msgid "This tool allows the user to run arbitrary perl modules from within RT." -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:327 -msgid "This transaction appears to have no content" -msgstr "Esta transacção não parece ter conteúdo" - -#: html/Ticket/Elements/ShowRequestor:72 -#. ($rows) -msgid "This user's %1 highest priority tickets" -msgstr "%1 tickets deste utilizador com maior prioridade" - -#: lib/RT/Date.pm:422 -msgid "Thu." -msgstr "Thu" - -#: html/Ticket/ModifyAll.html:48 html/Ticket/ModifyAll.html:52 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket #%1 Jumbo update: %2" -msgstr "" - -#: html/Approvals/Elements/ShowDependency:69 -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Ticket #%1: %2" -msgstr "Ticket #%1: %2" - -#: lib/RT/Action/CreateTickets.pm:1352 lib/RT/Action/CreateTickets.pm:1361 lib/RT/Action/CreateTickets.pm:607 lib/RT/Action/CreateTickets.pm:731 lib/RT/Action/CreateTickets.pm:743 -#. ($T::Tickets{$template_id}->Id) -#. ($T::Tickets{$template_id}->id) -#. ($ticket->Id) -msgid "Ticket %1" -msgstr "Ticket %1" - -#: lib/RT/Ticket_Overlay.pm:757 lib/RT/Ticket_Overlay.pm:777 -#. ($self->Id, $QueueObj->Name) -msgid "Ticket %1 created in queue '%2'" -msgstr "Ticket %1 criado na queue '%2'" - -#: html/Search/Bulk.html:380 html/Tools/MyDay.html:103 html/Tools/MyDay.html:94 html/Tools/MyDay.html:97 -#. ($Ticket->Id, $_) -#. ($id, $msg) -msgid "Ticket %1: %2" -msgstr "Ticket %1: %2" - -#: html/Admin/Elements/QueueTabs:76 -msgid "Ticket Custom Fields" -msgstr "" - -#: html/Ticket/History.html:48 html/Ticket/History.html:51 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket History # %1 %2" -msgstr "Histórico do ticket # %1 %2" - -#: etc/initialdata:324 -msgid "Ticket Resolved" -msgstr "Ticket Resolvido" - -#: html/Admin/Elements/GlobalCustomFieldTabs:71 html/Admin/Global/CustomFields/index.html:83 lib/RT/CustomField_Overlay.pm:1210 -msgid "Ticket Transactions" -msgstr "Transacções do ticket" - -#: lib/RT/Tickets_Overlay.pm:2109 -msgid "Ticket content" -msgstr "Conteúdo do ticket" - -#: lib/RT/Tickets_Overlay.pm:2158 -msgid "Ticket content type" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:605 lib/RT/Ticket_Overlay.pm:619 lib/RT/Ticket_Overlay.pm:630 lib/RT/Ticket_Overlay.pm:765 -msgid "Ticket could not be created due to an internal error" -msgstr "" - -#: html/Ticket/Create.html:247 -msgid "Ticket could not be loaded" -msgstr "" - -#: html/Ticket/Display.html:57 -msgid "Ticket metadata" -msgstr "" - -#: etc/initialdata:310 -msgid "Ticket status changed" -msgstr "Estado do ticket alterado" - -#: lib/RT/Search/FromSQL.pm:84 -#. (ref $self) -msgid "TicketSQL search module" -msgstr "" - -#: html/Admin/Elements/GlobalCustomFieldTabs:66 html/Admin/Global/CustomFields/index.html:77 html/Elements/Tabs:74 html/Search/Chart:113 html/Search/Elements/Chart:111 lib/RT/CustomField_Overlay.pm:1209 -msgid "Tickets" -msgstr "Tickets" - -#: lib/RT/Tickets_Overlay.pm:2350 -#. ($self->loc( $args{'TYPE'} ), ( $args{'BASE'} || $args{'TICKET'} )) -msgid "Tickets %1 %2" -msgstr "Tickets %1 %2" - -#: lib/RT/Tickets_Overlay.pm:2302 -#. ($self->loc( $args{'TYPE'} ), ( $args{'TARGET'} || $args{'TICKET'} )) -msgid "Tickets %1 by %2" -msgstr "Tickets %1 por %2" - -#: html/Tools/Reports/CreatedByDates.html:88 -msgid "Tickets created after" -msgstr "Tickets criados depois de" - -#: html/Tools/Reports/CreatedByDates.html:90 -msgid "Tickets created before" -msgstr "Tickets criados antes de" - -#: html/Tools/Reports/ResolvedByDates.html:89 -msgid "Tickets resolved after" -msgstr "Tickets resolvidos depois de" - -#: html/Tools/Reports/ResolvedByDates.html:91 -msgid "Tickets resolved before" -msgstr "Tickets resolvidos antes de" - -#: html/Approvals/Elements/ShowDependency:50 -msgid "Tickets which depend on this approval:" -msgstr "Pedidos que dependem desta aprovação" - -#: html/Search/Elements/PickBasics:136 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:74 -msgid "Time Estimated" -msgstr "Tempo previsto" - -#: html/Search/Elements/PickBasics:137 html/Ticket/Create.html:199 html/Ticket/Elements/EditBasics:87 lib/RT/Tickets_Overlay.pm:2080 -msgid "Time Left" -msgstr "Tempo disponível" - -#: html/Search/Elements/PickBasics:135 html/Ticket/Create.html:192 html/Ticket/Elements/EditBasics:80 lib/RT/Tickets_Overlay.pm:2055 -msgid "Time Worked" -msgstr "Tempo de trabalho" - -#: html/Elements/Footer:53 -msgid "Time to display" -msgstr "Tempo usado para disponibilizar página" - -#: lib/RT/Ticket_Overlay.pm:1169 -msgid "TimeWorked" -msgstr "" - -#: html/Search/Elements/EditFormat:76 -msgid "Title" -msgstr "" - -#: html/Elements/Footer:64 -#. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') -msgid "To inquire about support, training, custom development or licensing, please contact %1." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1172 -msgid "Told" -msgstr "" - -#: html/Admin/Elements/Tabs:70 html/Admin/index.html:90 html/Elements/Tabs:77 html/Tools/index.html:48 html/Tools/index.html:51 -msgid "Tools" -msgstr "Ferramentas" - -#: html/Search/Elements/Chart:132 -msgid "Total" -msgstr "Total" - -#: etc/initialdata:252 -msgid "Transaction" -msgstr "Transacção" - -#: lib/RT/Transaction_Overlay.pm:826 -#. ($self->Data) -msgid "Transaction %1 purged" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:185 -msgid "Transaction Created" -msgstr "Transacção Criada" - -#: html/Admin/Elements/QueueTabs:80 -msgid "Transaction Custom Fields" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:130 -msgid "Transaction->Create couldn't, as you didn't specify an object type and id" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:891 -msgid "Transactions are immutable" -msgstr "" - -#: lib/RT/Date.pm:420 -msgid "Tue." -msgstr "Tue" - -#: html/Admin/CustomFields/Modify.html:68 html/Admin/Elements/EditCustomField:67 html/Ticket/Elements/AddWatchers:56 html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/AddWatchers:77 lib/RT/Ticket_Overlay.pm:1170 lib/RT/Tickets_Overlay.pm:1894 -msgid "Type" -msgstr "Tipo" - -#: lib/RT/ScripCondition_Overlay.pm:130 -msgid "Unimplemented" -msgstr "" - -#: html/Admin/Users/Modify.html:91 -msgid "Unix login" -msgstr "" - -#: lib/RT/Attachment_Overlay.pm:291 lib/RT/Record.pm:863 -#. ($self->ContentEncoding) -#. ($ContentEncoding) -msgid "Unknown ContentEncoding %1" -msgstr "" - -#: html/Search/Build.html:461 lib/RT/Report/Tickets.pm:410 -#. ($key) -msgid "Unknown field: %1" -msgstr "" - -#: html/Elements/SelectResultsPerPage:60 -msgid "Unlimited" -msgstr "" - -#: html/Search/Elements/SelectSearchesForObjects:66 -msgid "Unnamed search" -msgstr "Procura sem nome" - -#: etc/initialdata:32 -msgid "Unprivileged" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:62 -msgid "Unselected Custom Fields" -msgstr "" - -#: html/Admin/CustomFields/Objects.html:63 -msgid "Unselected objects" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:680 -msgid "Untaken" -msgstr "" - -#: html/Admin/Elements/EditScrip:130 html/Elements/RT__Ticket/ColumnMap:304 html/Search/Bulk.html:195 html/Search/Bulk.html:77 -msgid "Update" -msgstr "Actualizar" - -#: html/Ticket/Update.html:137 -msgid "Update Ticket" -msgstr "Actualizar Ticket" - -#: html/Search/Bulk.html:128 html/Ticket/ModifyAll.html:89 html/Ticket/Update.html:74 -msgid "Update Type" -msgstr "Tipo de actualização" - -#: html/Search/Bulk.html:202 html/Search/Results.html:80 -msgid "Update multiple tickets" -msgstr "Actualizar múltiplos tickets" - -#: lib/RT/Action/CreateTickets.pm:752 lib/RT/Interface/Web.pm:611 -msgid "Update not recorded." -msgstr "" - -#: html/Ticket/ModifyAll.html:86 -msgid "Update ticket" -msgstr "Actualizar ticket" - -#: html/SelfService/Update.html:114 html/SelfService/Update.html:49 -#. ($Ticket->id) -msgid "Update ticket #%1" -msgstr "Actualizar ticket #%1" - -#: html/Ticket/Update.html:160 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Update ticket #%1 (%2)" -msgstr "Actualizar ticket #%1 (%2)" - -#: lib/RT/Action/CreateTickets.pm:750 lib/RT/Interface/Web.pm:610 -msgid "Update type was neither correspondence nor comment." -msgstr "" - -#: html/Elements/SelectDateType:56 html/Ticket/Elements/ShowDates:74 lib/RT/CustomField_Overlay.pm:1287 lib/RT/Ticket_Overlay.pm:1173 -msgid "Updated" -msgstr "Actualizado" - -#: html/Tools/Offline.html:95 -msgid "Upload" -msgstr "Carregar" - -#: lib/RT/CustomField_Overlay.pm:86 -msgid "Upload multiple files" -msgstr "Carregar múltiplos ficheiros" - -#: lib/RT/CustomField_Overlay.pm:81 -msgid "Upload multiple images" -msgstr "Carregar múltiplas imagens" - -#: lib/RT/CustomField_Overlay.pm:87 -msgid "Upload one file" -msgstr "Carregar um ficheiro" - -#: lib/RT/CustomField_Overlay.pm:82 -msgid "Upload one image" -msgstr "Carregar uma imagem" - -#: lib/RT/CustomField_Overlay.pm:88 -msgid "Upload up to %1 files" -msgstr "Carregar até %1 ficheiros" - -#: lib/RT/CustomField_Overlay.pm:83 -msgid "Upload up to %1 images" -msgstr "Carregar até %1 imagens" - -#: html/Tools/Offline.html:95 -msgid "Upload your changes" -msgstr "" - -#: html/Admin/index.html:92 -msgid "Use other RT administrative tools" -msgstr "Utilizar outras ferramentas administrativas do RT" - -#: lib/RT/Ticket_Overlay.pm:508 -#. ($args{'Owner'}) -msgid "User '%1' could not be found." -msgstr "Utilizador '%1' não encontrado" - -#: etc/initialdata:132 etc/initialdata:206 -msgid "User Defined" -msgstr "" - -#: html/Admin/Elements/EditScrip:95 -msgid "User Defined conditions and actions" -msgstr "" - -#: html/Admin/Elements/CustomFieldTabs:74 html/Admin/Elements/GroupTabs:70 html/Admin/Elements/QueueTabs:87 html/Admin/Elements/SystemTabs:70 html/Admin/Global/index.html:82 -msgid "User Rights" -msgstr "Direitos de utilizador" - -#: lib/RT/Interface/Web.pm:1392 -#. ($cf->Name, ref $args{'Object'}, $args{'Object'}->id) -msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" -msgstr "" - -#: html/Admin/Users/Modify.html:305 -#. ($msg) -msgid "User could not be created: %1" -msgstr "Utilizador não criado: %1" - -#: lib/RT/User_Overlay.pm:332 -msgid "User created" -msgstr "Utilizador criado" - -#: html/Admin/CustomFields/GroupRights.html:76 html/Admin/Global/GroupRights.html:90 html/Admin/Groups/GroupRights.html:77 html/Admin/Queues/GroupRights.html:92 -msgid "User defined groups" -msgstr "" - -#: lib/RT/User_Overlay.pm:594 lib/RT/User_Overlay.pm:614 -msgid "User loaded" -msgstr "Utilizador carregado" - -#: html/Admin/Groups/index.html:105 -msgid "User-defined groups" -msgstr "Grupos definidos por utilizadores" - -#: html/Admin/Users/Modify.html:71 html/Elements/Login:92 html/Ticket/Elements/AddWatchers:58 -msgid "Username" -msgstr "Username" - -#: html/Admin/Elements/GlobalCustomFieldTabs:57 html/Admin/Elements/SelectNewGroupMembers:49 html/Admin/Elements/Tabs:55 html/Admin/Global/CustomFields/index.html:66 html/Admin/Groups/Members.html:78 html/Admin/Queues/People.html:91 html/Admin/index.html:64 html/User/Groups/Members.html:81 lib/RT/CustomField_Overlay.pm:1211 -msgid "Users" -msgstr "Utilizadores" - -#: html/Admin/Users/index.html:87 -msgid "Users matching search criteria" -msgstr "Utilizadores que verificam o critério de pesquisa" - -#: bin/rt-crontool:136 -#. ($transaction->id) -msgid "Using transaction #%1..." -msgstr "" - -#: lib/RT/Tickets_Overlay_SQL.pm:530 -msgid "Valid Query" -msgstr "Query válida" - -#: html/Admin/CustomFields/Modify.html:82 -msgid "Validation" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:132 html/Admin/Elements/EditCustomField:80 -msgid "Values" -msgstr "Valores" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "Watch" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "WatchAsAdminCc" -msgstr "" - -#: html/Admin/Elements/QueueTabs:65 -msgid "Watchers" -msgstr "" - -#: lib/RT/Date.pm:421 -msgid "Wed." -msgstr "Wed" - -#: html/Tools/MyDay.html:80 -msgid "What I did today" -msgstr "" - -#: etc/initialdata:521 -msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" -msgstr "" - -#: etc/initialdata:485 -msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" -msgstr "" - -#: etc/initialdata:146 -msgid "When a ticket is created" -msgstr "Quando um ticket é criado" - -#: etc/initialdata:418 -msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" -msgstr "" - -#: etc/initialdata:151 -msgid "When anything happens" -msgstr "Quando algo acontece" - -#: etc/initialdata:199 -msgid "Whenever a ticket is resolved" -msgstr "Quando um ticket é resolvido" - -#: etc/initialdata:185 -msgid "Whenever a ticket's owner changes" -msgstr "" - -#: etc/initialdata:178 etc/upgrade/3.1.17/content:16 -msgid "Whenever a ticket's priority changes" -msgstr "" - -#: etc/initialdata:193 -msgid "Whenever a ticket's queue changes" -msgstr "" - -#: etc/initialdata:170 -msgid "Whenever a ticket's status changes" -msgstr "" - -#: etc/initialdata:207 -msgid "Whenever a user-defined condition occurs" -msgstr "" - -#: etc/initialdata:164 -msgid "Whenever comments come in" -msgstr "" - -#: etc/initialdata:157 -msgid "Whenever correspondence comes in" -msgstr "" - -#: html/Admin/Users/Modify.html:191 html/User/Prefs.html:90 -msgid "Work" -msgstr "" - -#: html/Search/Results.html:84 -msgid "Work offline" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:65 html/Ticket/Update.html:66 html/Tools/MyDay.html:65 -msgid "Worked" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3157 -msgid "You already own this ticket" -msgstr "Este ticket já é seu" - -#: html/autohandler:216 html/autohandler:224 -msgid "You are not an authorized user" -msgstr "" - -#: html/Prefs/Search.html:58 -msgid "You can also edit the predefined search itself" -msgstr "Também pode editar a própria procura personalizada" - -#: lib/RT/Ticket_Overlay.pm:3039 -msgid "You can only reassign tickets that you own or that are unowned" -msgstr "Só pode atribuir um pedido que seja seu ou que não proprietário" - -#: lib/RT/Ticket_Overlay.pm:3035 -msgid "You can only take tickets that are unowned" -msgstr "Só pode responsabilizar-se por tickets que não têm dono" - -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:778 -#. ($num, $queue) -msgid "You found %1 tickets in queue %2" -msgstr "Encontrou %1 tickets na queue %2" - -#: html/NoAuth/Logout.html:54 -msgid "You have been logged out of RT." -msgstr "Saiu do RT" - -#: html/SelfService/Display.html:135 -msgid "You have no permission to create tickets in that queue." -msgstr "Não tem permissão para criar tickets nessa queue." - -#: lib/RT/Ticket_Overlay.pm:1996 -msgid "You may not create requests in that queue." -msgstr "Não pode criar pedidos nessa queue" - -#: html/NoAuth/Logout.html:58 -msgid "You're welcome to login again" -msgstr "" - -#: etc/initialdata:502 etc/initialdata:504 -#. (# loc $self->TransactionObj->CreatorObj->Name,) -msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "" - -#: etc/initialdata:540 -msgid "Your request has been approved." -msgstr "" - -#: etc/initialdata:445 -msgid "Your request was rejected." -msgstr "" - -#: html/autohandler:253 -msgid "Your username or password is incorrect" -msgstr "Login ou password errados" - -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:151 -msgid "Zip" -msgstr "Código Postal" - -#: html/Search/Elements/DisplayOptions:67 -msgid "[none]" -msgstr "" - -#: lib/RT/System.pm:89 -msgid "allow creation of saved searches" -msgstr "" - -#: lib/RT/System.pm:88 -msgid "allow loading of saved searches" -msgstr "" - -#: html/User/Elements/DelegateRights:82 -#. ($right->PrincipalObj->Object->SelfDescription) -msgid "as granted to %1" -msgstr "" - -#: html/Search/Results.html:85 -msgid "chart" -msgstr "" - -#: html/SelfService/Closed.html:51 -msgid "closed" -msgstr "fechado" - -#: html/Elements/SelectCustomFieldOperator:61 html/Elements/SelectMatch:57 -msgid "contains" -msgstr "contém" - -#: lib/RT/Report/Tickets.pm:347 -msgid "current: $current, want $want, Error near ->$val<- expecting a $token in '$string'\\n" -msgstr "" - -#: html/Admin/Queues/Modify.html:100 lib/RT/Date.pm:348 -msgid "days" -msgstr "dias" - -#: lib/RT/Queue_Overlay.pm:89 -msgid "deleted" -msgstr "apagado" - -#: html/Search/Elements/PickBasics:63 -msgid "does not match" -msgstr "" - -#: html/Elements/SelectCustomFieldOperator:61 html/Elements/SelectMatch:58 -msgid "doesn't contain" -msgstr "não contém" - -#: html/Elements/SelectEqualityOperator:61 -msgid "equal to" -msgstr "igual a" - -#: html/Search/Build.html:553 -msgid "error: can't move down" -msgstr "" - -#: html/Search/Build.html:575 -msgid "error: can't move left" -msgstr "" - -#: html/Search/Build.html:534 -msgid "error: can't move up" -msgstr "" - -#: html/Search/Build.html:618 -msgid "error: nothing to delete" -msgstr "" - -#: html/Search/Build.html:539 html/Search/Build.html:558 html/Search/Build.html:580 html/Search/Build.html:609 -msgid "error: nothing to move" -msgstr "" - -#: html/Search/Build.html:636 -msgid "error: nothing to toggle" -msgstr "" - -#: html/Elements/SelectCustomFieldOperator:61 html/Elements/SelectEqualityOperator:61 -msgid "greater than" -msgstr "maior do que" - -#: lib/RT/Group_Overlay.pm:216 -#. ($self->Name) -msgid "group '%1'" -msgstr "grupo '%1'" - -#: html/Search/Results.html:90 -#. ($m->scomp('Elements/SelectGroupBy', Name => 'PrimaryGroupBy', Query => $Query)) -msgid "grouped by %1" -msgstr "agrupado por %1" - -#: lib/RT/Date.pm:344 -msgid "hours" -msgstr "horas" - -#: html/Search/Elements/PickBasics:50 -msgid "id" -msgstr "id" - -#: html/Elements/SelectBoolean:55 html/Elements/SelectCustomFieldOperator:61 html/Elements/SelectMatch:59 html/Search/Elements/PickBasics:164 html/Search/Elements/PickBasics:76 html/Search/Elements/PickBasics:92 html/Search/Elements/PickCFs:55 -msgid "is" -msgstr "é" - -#: html/Elements/SelectBoolean:59 html/Elements/SelectCustomFieldOperator:61 html/Elements/SelectMatch:60 html/Search/Elements/PickBasics:165 html/Search/Elements/PickBasics:77 html/Search/Elements/PickBasics:93 html/Search/Elements/PickCFs:56 -msgid "isn't" -msgstr "não é" - -#: html/Elements/SelectCustomFieldOperator:61 html/Elements/SelectEqualityOperator:61 -msgid "less than" -msgstr "menos do que" - -#: html/Search/Elements/PickBasics:62 -msgid "matches" -msgstr "coincide" - -#: lib/RT/Date.pm:340 -msgid "min" -msgstr "" - -#: html/Tools/MyDay.html:65 -msgid "minutes" -msgstr "minutos" - -#: lib/RT/Date.pm:356 -msgid "months" -msgstr "meses" - -#: lib/RT/Queue_Overlay.pm:84 -msgid "new" -msgstr "novo" - -#: html/Admin/Elements/PickCustomFields:66 html/Admin/Elements/PickObjects:67 -msgid "no name" -msgstr "sem nome" - -#: html/Admin/Elements/EditScrips:66 -msgid "no value" -msgstr "sem valor" - -#: html/Admin/Elements/EditQueueWatchers:50 html/Ticket/Elements/EditWatchers:51 -msgid "none" -msgstr "nenhum" - -#: html/Elements/SelectEqualityOperator:61 -msgid "not equal to" -msgstr "diferente de" - -#: html/SelfService/Elements/MyRequests:78 lib/RT/Queue_Overlay.pm:85 -msgid "open" -msgstr "aberto" - -#: lib/RT/Group_Overlay.pm:221 -#. ($self->Name, $user->Name) -msgid "personal group '%1' for user '%2'" -msgstr "" - -#: lib/RT/Group_Overlay.pm:229 -#. ($queue->Name, $self->Type) -msgid "queue %1 %2" -msgstr "queue %1 %2" - -#: lib/RT/Queue_Overlay.pm:88 -msgid "rejected" -msgstr "rejeitado" - -#: lib/RT/Queue_Overlay.pm:87 -msgid "resolved" -msgstr "resolvido" - -#: lib/RT/Date.pm:336 -msgid "sec" -msgstr "" - -#: lib/RT/System.pm:87 -msgid "show Configuration tab" -msgstr "" - -#: html/Search/Results.html:82 -msgid "spreadsheet" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:86 -msgid "stalled" -msgstr "pendente" - -#: html/Search/Results.html:91 -#. ($m->scomp('Elements/SelectChartType', Name => 'ChartStyle')) -msgid "style: %1" -msgstr "" - -#: html/Prefs/MyRT.html:95 -msgid "summary rows" -msgstr "linhas de sumário" - -#: lib/RT/Group_Overlay.pm:224 -#. ($self->Type) -msgid "system %1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:235 -#. ($self->Type) -msgid "system group '%1'" -msgstr "" - -#: html/Elements/Error:66 html/SelfService/Error.html:65 -msgid "the calling component did not specify why" -msgstr "" - -#: lib/RT/Group_Overlay.pm:232 -#. ($self->Instance, $self->Type) -msgid "ticket #%1 %2" -msgstr "ticket #%1 %2" - -#: lib/RT/Group_Overlay.pm:238 -#. ($self->Id) -msgid "undescribed group %1" -msgstr "grupo indefinido %1" - -#: lib/RT/Group_Overlay.pm:213 -#. ($user->Object->Name) -msgid "user %1" -msgstr "utilizador %1" - -#: lib/RT/Date.pm:352 -msgid "weeks" -msgstr "semanas" - -#: lib/RT/Date.pm:360 -msgid "years" -msgstr "anos" - diff --git a/rt/lib/RT/I18N/zh_cn.po b/rt/lib/RT/I18N/zh_cn.po deleted file mode 100644 index 23dae6f0b..000000000 --- a/rt/lib/RT/I18N/zh_cn.po +++ /dev/null @@ -1,8423 +0,0 @@ -# -msgid "" -msgstr "" -"Project-Id-Version: RT 3.6.x\n" -"PO-Revision-Date: 2007-12-09 13:05+0800\n" -"Last-Translator: Audrey Tang <cpan@audreyt.org>\n" -"Language-Team: rt-devel <rt-devel@lists.bestpractical.com>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: html/Widgets/SavedSearch:70 -#. ($self->{CurrentSearch}{Object}->Description) -msgid " %1 deleted." -msgstr " 已删除 %1。" - -#: html/Widgets/SavedSearch:47 -#. ($self->{CurrentSearch}{Description}, $args->{Description}) -msgid " %1 renamed to %2." -msgstr " %1 已更名为 %2。" - -#: html/Widgets/SavedSearch:60 -#. ($args->{Description}) -msgid " %1 saved." -msgstr " %1 已储存。" - -#: NOT FOUND IN SOURCE -msgid "#" -msgstr "#" - -#: NOT FOUND IN SOURCE -msgid "#%1" -msgstr "#%1" - -#: html/Approvals/Elements/Approve:48 html/Approvals/Elements/ShowDependency:71 html/SelfService/Display.html:46 html/Ticket/Display.html:47 html/Ticket/Display.html:51 -#. ($Ticket->id, $Ticket->Subject) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -#. ($ticket->Id, $ticket->Subject) -#. ($TicketObj->Id, $TicketObj->Subject) -msgid "#%1: %2" -msgstr "#%1: %2" - -#: html/Elements/ShowSearch:105 -msgid "$1" -msgstr "$1" - -#: lib/RT/Record.pm:940 -#. ($label) -msgid "$prefix %1" -msgstr "$prefix %1" - -#: NOT FOUND IN SOURCE -msgid "%*(%1,group ticket)" -msgstr "%*(%1) 件参与的申请单" - -#: NOT FOUND IN SOURCE -msgid "%*(%1,ticket) due" -msgstr "%*(%1) 件限期完成的申请单" - -#: NOT FOUND IN SOURCE -msgid "%*(%1,unresolved ticket)" -msgstr "%*(%1) 件尚未解决的申请单" - -#: lib/RT/URI/fsck_com_rt.pm:256 -#. ($self->ObjectType, $self->Object->Id) -msgid "%1 #%2" -msgstr "%1 #%2" - -#: lib/RT/Date.pm:365 -#. ($s, $time_unit) -msgid "%1 %2" -msgstr "%1 %2" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 %3" -msgstr "%1 %2 %3" - -#: lib/RT/Date.pm:401 -#. ($self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)) -msgid "%1 %2 %3 %4:%5:%6 %7" -msgstr "%7-%2-%3 %4:%5:%6 %1" - -#: lib/RT/Record.pm:1685 lib/RT/Transaction_Overlay.pm:647 lib/RT/Transaction_Overlay.pm:690 -#. ($cf->Name, $new_value->Content) -#. ($field, $self->NewValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 added" -msgstr "%2 已新增为 %1" - -#: lib/RT/Date.pm:362 -#. ($s, $time_unit) -msgid "%1 %2 ago" -msgstr "%1 %2 之前" - -#: lib/RT/Record.pm:1692 lib/RT/Transaction_Overlay.pm:654 -#. ($cf->Name, $old_content, $new_value->Content) -#. ($field, $self->OldValue, $self->NewValue) -msgid "%1 %2 changed to %3" -msgstr "%1 已从 %2 改为 %3" - -#: lib/RT/Record.pm:1689 lib/RT/Transaction_Overlay.pm:650 lib/RT/Transaction_Overlay.pm:696 -#. ($cf->Name, $old_value->Content) -#. ($field, $self->OldValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 deleted" -msgstr "%2 已自 %1 删除" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 of group %3" -msgstr "%3 群组的 %1 %2" - -#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:63 html/Ticket/Elements/PreviewScrips:103 -#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) -msgid "%1 %2 with template %3" -msgstr "条件:%1 | 动作:%2 | 模板:%3" - -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 this ticket\\n" -msgstr "%1 (%2) %3 这份申请单\\n" - -#: html/Ticket/Elements/ShowAttachments:72 -#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) -msgid "%1 (%2) by %3" -msgstr "%1 (%2) - %3" - -#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:108 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:66 -#. (loc($DefaultStatus)) -#. (loc($Ticket->Status())) -#. (loc($TicketObj->Status)) -#. ($TicketObj->OwnerObj->Name()) -msgid "%1 (Unchanged)" -msgstr "%1 (未更改)" - -#: NOT FOUND IN SOURCE -msgid "%1 - %2 shown" -msgstr "显示第 %1 - %2 笔" - -#: bin/rt-crontool:237 bin/rt-crontool:244 bin/rt-crontool:250 -#. ("--search-argument", "--search") -#. ("--condition-argument", "--condition") -#. ("--action-argument", "--action") -msgid "%1 - An argument to pass to %2" -msgstr "%1 - 传递给 %2 的一个参数" - -#: bin/rt-crontool:262 -#. ("--verbose") -msgid "%1 - Output status updates to STDOUT" -msgstr "%1 - 将更新状态输出到 STDOUT" - -#: bin/rt-crontool:253 -#. ("--template-id") -msgid "%1 - Specify id of the template you want to use" -msgstr "%1 - 指定欲使用的模板编号" - -#: bin/rt-crontool:256 -#. ("--transaction") -msgid "%1 - Specify if you want to use either 'first' or 'last' tarnsaction" -msgstr "%1 - 指定欲使用的更动为 'first' (第一项) 或 'last' (最后一项)" - -#: bin/rt-crontool:247 -#. ("--action") -msgid "%1 - Specify the action module you want to use" -msgstr "%1 - 指定欲使用的动作模块" - -#: bin/rt-crontool:241 -#. ("--condition") -msgid "%1 - Specify the condition module you want to use" -msgstr "%1 - 指定欲使用的条件模块" - -#: bin/rt-crontool:234 -#. ("--search") -msgid "%1 - Specify the search module you want to use" -msgstr "%1 - 指定欲使用的查询模块" - -#: bin/rt-crontool:259 -#. ("--transaction-type") -msgid "%1 - Specify the type of a transaction you want to use" -msgstr "%1 - 指定欲使用的更动类别" - -#: html/Elements/Footer:56 -#. ('»|«', $RT::VERSION, '2006', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -msgid "%1 RT %2 Copyright 1996-%3 %4." -msgstr "%1 RT %2 版,%4 版权所有,1996-%3。" - -#: lib/RT/ScripAction_Overlay.pm:150 -#. ($self->Id) -msgid "%1 ScripAction loaded" -msgstr "加载手续 %1" - -#: NOT FOUND IN SOURCE -msgid "%1 Total" -msgstr "共 %1 笔" - -#: lib/RT/Record.pm:1722 -#. ($args{'Value'}, $cf->Name) -msgid "%1 added as a value for %2" -msgstr "新增 %1 作为 %2 的值" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on" -msgstr "别名 %1 需要可用的申请单编号" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on " -msgstr "别名 %1 需要可用的申请单编号 " - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on (from %2) %3" -msgstr "别名 %1 需要可用的申请单编号以处理 %3(出自 %2)" - -#: lib/RT/Link_Overlay.pm:144 lib/RT/Link_Overlay.pm:151 -#. ($args{'Base'}) -#. ($args{'Target'}) -msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "%1 看来是个本地对象,却不在数据库里" - -#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:531 -#. ($self->BriefDescription , $self->CreatorObj->Name) -#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) -msgid "%1 by %2" -msgstr "%1 (%2)" - -#: lib/RT/Transaction_Overlay.pm:788 lib/RT/Transaction_Overlay.pm:797 lib/RT/Transaction_Overlay.pm:800 -#. ($self->Field , $q1->Name , $q2->Name) -#. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") -msgid "%1 changed from %2 to %3" -msgstr "%1 的值从 %2 改为 %3" - -#: html/Search/Build.html:213 -#. ($Description) -msgid "%1 copy" -msgstr "%1 复制" - -#: lib/RT/Record.pm:944 -msgid "%1 could not be set to %2." -msgstr "无法将 %1 设定为 %2。" - -#: NOT FOUND IN SOURCE -msgid "%1 couldn't init a transaction (%2)\\n" -msgstr "%1 无法初始更新 (%2)\\n" - -#: lib/RT/Ticket_Overlay.pm:2787 -#. ($self) -msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." -msgstr "%1 无法将现况设成已解决。RT 数据库内容可能不一致。" - -#: lib/RT/Transaction_Overlay.pm:571 -#. ($obj_type) -msgid "%1 created" -msgstr "已建立 %1" - -#: lib/RT/Transaction_Overlay.pm:576 -#. ($obj_type) -msgid "%1 deleted" -msgstr "已删除 %1" - -#: etc/initialdata:593 -msgid "%1 highest priority tickets I own" -msgstr "前 %1 份待处理申请单" - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I own..." -msgstr "前 %1 份待处理申请单..." - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I requested..." -msgstr "前 %1 份送出的申请单..." - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets pending my approval..." -msgstr "前 %1 份待签核申请单..." - -#: bin/rt-crontool:229 -#. ($0) -msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." -msgstr "%1 是从外部排程程序(如 cron)来对申请单进行操作的工具。" - -#: lib/RT/Queue_Overlay.pm:863 -#. ($principal->Object->Name, $args{'Type'}) -msgid "%1 is no longer a %2 for this queue." -msgstr "%1 已不再是此表单的 %2。" - -#: NOT FOUND IN SOURCE -msgid "%1 is no longer a %2 for this ticket." -msgstr "%1 已不再是此申请单的 %2。" - -#: NOT FOUND IN SOURCE -msgid "%1 is no longer a value for custom field %2" -msgstr "%1 已不再是自订字段 %2 的值。" - -#: NOT FOUND IN SOURCE -msgid "%1 isn't a valid Queue id." -msgstr "%1 不是一个合法的表单编号。" - -#: html/Ticket/Elements/ShowTime:47 html/Ticket/Elements/ShowTime:49 -#. ($minutes) -msgid "%1 min" -msgstr "%1 分钟" - -#: etc/initialdata:601 -msgid "%1 newest unowned tickets" -msgstr "前 %1 份待认领的申请单" - -#: NOT FOUND IN SOURCE -msgid "%1 not shown" -msgstr "没有显示 %1" - -#: lib/RT/CustomField_Overlay.pm:893 -msgid "%1 objects" -msgstr "%1 对象" - -#: NOT FOUND IN SOURCE -msgid "%1 recent tickets I own..." -msgstr "最新 %1 份待处理申请单..." - -#: NOT FOUND IN SOURCE -msgid "%1 recent tickets I requested..." -msgstr "最新 %1 份送出的申请单..." - -#: NOT FOUND IN SOURCE -msgid "%1 result(s) found" -msgstr "找到 %1 项结果" - -#: html/User/Elements/DelegateRights:97 -#. (loc($ObjectType =~ /^RT::(.*)$/)) -msgid "%1 rights" -msgstr "%1权限" - -#: NOT FOUND IN SOURCE -msgid "%1 succeeded\\n" -msgstr "%1 完成\\n" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for $MessageId" -msgstr "不知道 $MessageID 的 %1 类别" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for %2" -msgstr "不知道 %2 的 %1 类别" - -#: NOT FOUND IN SOURCE -msgid "%1 was created without a CurrentUser\\n" -msgstr "%1 新增时未指定现行使用者" - -#: lib/RT/Action/ResolveMembers.pm:63 -#. (ref $self) -msgid "%1 will resolve all members of a resolved group ticket." -msgstr "%1 会解决在已解决群组里成员的申请单。" - -#: NOT FOUND IN SOURCE -msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." -msgstr "如果 %1 起始申请单依赖于某个链接,或是某个链接的成员,它将会被延宕。" - -#: lib/RT/CustomField_Overlay.pm:894 -msgid "%1's %2 objects" -msgstr "%1 内的 %2 对象" - -#: lib/RT/CustomField_Overlay.pm:895 -msgid "%1's %2's %3 objects" -msgstr "%1 内的 %2 的 %3 对象" - -#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:57 -#. ($object->Name) -#. ($Object->Name) -msgid "%1's saved searches" -msgstr "%1 的预存查询" - -#: lib/RT/Transaction_Overlay.pm:481 -#. ($self) -msgid "%1: no attachment specified" -msgstr "%1:未指定附件" - -#: html/Ticket/Elements/ShowTransactionAttachments:78 -#. ($size) -msgid "%1b" -msgstr "%1 字节" - -#: html/Ticket/Elements/ShowTransactionAttachments:75 -#. (int( $size / 102.4 ) / 10) -msgid "%1k" -msgstr "%1k 字节" - -#: html/Ticket/Elements/ShowTime:49 -#. (sprintf("%.1f",$minutes / 60)) -msgid "%quant(%1,hour)" -msgstr "%1 小时" - -#: NOT FOUND IN SOURCE -msgid "%quant(%1,result) found" -msgstr "找到 %1 项结果" - -#: lib/RT/Ticket_Overlay.pm:1142 -#. ($args{'Status'}) -msgid "'%1' is an invalid value for status" -msgstr "'%1' 不是一个合法的状态值" - -#: NOT FOUND IN SOURCE -msgid "'%1' not a recognized action. " -msgstr "'%1'为无法辨识的动作。 " - -#: NOT FOUND IN SOURCE -msgid "(Check box to delete group member)" -msgstr "(点选欲删除的成员)" - -#: NOT FOUND IN SOURCE -msgid "(Check box to delete scrip)" -msgstr "(点选欲删除的手续)" - -#: html/Admin/Elements/EditCustomFieldValues:50 html/Admin/Elements/EditQueueWatchers:50 html/Admin/Elements/EditScrips:56 html/Admin/Elements/EditTemplates:57 html/Admin/Groups/Members.html:73 html/Elements/EditLinks:54 html/Ticket/Elements/EditPeople:67 html/User/Groups/Members.html:76 -msgid "(Check box to delete)" -msgstr "(点选欲删除的项目)" - -#: NOT FOUND IN SOURCE -msgid "(Check boxes to delete)" -msgstr "(点选欲删除的项目)" - -#: html/Ticket/Elements/PreviewScrips:99 -msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "(点选欲停用通知的收件人)" - -#: html/Ticket/Elements/PreviewScrips:123 -msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "(点选欲启用通知的收件人)" - -#: html/Ticket/Create.html:218 -msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(键入申请单编号或网址,以空白分隔)" - -#: html/Admin/Queues/Modify.html:75 html/Admin/Queues/Modify.html:81 -#. ($RT::CorrespondAddress) -#. ($RT::CommentAddress) -msgid "(If left blank, will default to %1)" -msgstr "(如果留白, 则预设为 %1)" - -#: NOT FOUND IN SOURCE -msgid "(No Value)" -msgstr "(没有值)" - -#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 -msgid "(No custom fields)" -msgstr "(没有自订字段)" - -#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 -msgid "(No members)" -msgstr "(没有成员)" - -#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:48 -msgid "(No scrips)" -msgstr "(没有手续)" - -#: html/Admin/Elements/EditTemplates:52 -msgid "(No templates)" -msgstr "没有模板" - -#: NOT FOUND IN SOURCE -msgid "(No workflows)" -msgstr "没有流程" - -#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 -msgid "(None)" -msgstr "(无)" - -#: NOT FOUND IN SOURCE -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will receive future updates.)" -msgstr "(送出本份更新的密件副本给名单上以逗号隔开的电子邮件地址。这<b>不会</b>更改后续的收件者名单。)" - -#: NOT FOUND IN SOURCE -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will recieve future updates.)" -msgstr "(送出本份更新的密件副本给名单上以逗号隔开的电子邮件地址。这<b>不会</b>更改后续的收件者名单。)" - -#: html/Ticket/Update.html:90 -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "(送出本份更新的密件副本给名单上以逗号隔开的电子邮件地址。这<strong>不会</strong>更改后续的收件者名单。)" - -#: NOT FOUND IN SOURCE -msgid "(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <b>will</b> receive future updates.)" -msgstr "(送出本份更新的副本给名单上以逗号隔开的管理员电子邮件地址。这<b>将会</b>更改后续的收件者名单。)" - -#: html/Ticket/Create.html:103 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "(送出本份更新的副本给名单上以逗号隔开的管理员电子邮件地址。这<strong>将会</strong>更改后续的收件者名单。)" - -#: NOT FOUND IN SOURCE -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will receive future updates.)" -msgstr "(送出本份更新的副本给名单上以逗号隔开的电子邮件地址。这<b>不会</b>更改后续的收件者名单。)" - -#: NOT FOUND IN SOURCE -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will recieve future updates.)" -msgstr "(送出本份更新的副本给名单上以逗号隔开的电子邮件地址。这<b>不会</b>更改后续的收件者名单。)" - -#: html/Ticket/Update.html:86 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "(送出本份更新的副本给名单上以逗号隔开的电子邮件地址。这<strong>不会</strong>更改后续的收件者名单。)" - -#: NOT FOUND IN SOURCE -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people <b>will</b> receive future updates.)" -msgstr "(送出本份更新的副本给名单上以逗号隔开的电子邮件地址。这<b>将会</b>更改后续的收件者名单。)" - -#: html/Ticket/Create.html:93 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "(送出本份更新的副本给名单上以逗号隔开的电子邮件地址。这<strong>将会</strong>更改后续的收件者名单。)" - -#: html/Admin/Elements/EditScrip:96 -msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "(当条件或动作设为‘使用者自订’时,请填入这些字段)" - -#: html/Ticket/Elements/EditWatchers:60 html/Ticket/Elements/ShowUserEntry:53 -msgid "(Will not be sent email)" -msgstr "(不会收到邮件)" - -#: NOT FOUND IN SOURCE -msgid "(default delegate)" -msgstr "(预设代理人)" - -#: NOT FOUND IN SOURCE -msgid "(delete)" -msgstr "(删除)" - -#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 -msgid "(empty)" -msgstr "(空白)" - -#: NOT FOUND IN SOURCE -msgid "(new)" -msgstr "(新增)" - -#: html/Admin/Users/index.html:60 -msgid "(no name listed)" -msgstr "(没有列出姓名)" - -#: NOT FOUND IN SOURCE -msgid "(no subject)" -msgstr "(没有主题)" - -#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:69 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:54 html/Search/Chart:56 html/Search/Elements/Chart:76 lib/RT/Transaction_Overlay.pm:591 -msgid "(no value)" -msgstr "(无)" - -#: html/Admin/Elements/EditCustomFieldValues:47 -msgid "(no values)" -msgstr "(没有值)" - -#: html/Elements/EditLinks:132 html/Ticket/Elements/BulkLinks:49 -msgid "(only one ticket)" -msgstr "(仅能指定一份申请单)" - -#: html/Elements/RT__Ticket/ColumnMap:149 -msgid "(pending approval)" -msgstr "(等待签核)" - -#: html/Elements/RT__Ticket/ColumnMap:152 -msgid "(pending other Collection)" -msgstr "(等待其它集合)" - -#: NOT FOUND IN SOURCE -msgid "(pending other tickets)" -msgstr "(等待其它申请单)" - -#: NOT FOUND IN SOURCE -msgid "(requestor's group)" -msgstr "(申请人所属)" - -#: html/Admin/Users/Modify.html:71 -msgid "(required)" -msgstr "(必填)" - -#: html/Ticket/Elements/ShowTransactionAttachments:82 -msgid "(untitled)" -msgstr "(未命名)" - -#: html/Ticket/Elements/Reminders:133 -msgid "(yyyy/mm/dd)" -msgstr "(yyyy/mm/dd)" - -#: NOT FOUND IN SOURCE -msgid "*" -msgstr "★" - -#: html/Elements/EditCustomFieldSelect:57 -msgid "-" -msgstr "-" - -#: bin/rt-crontool:95 -msgid "--transaction argument could be only 'first' or 'last'" -msgstr "--transaction 的值仅能为 'first' 或 'last'" - -#: NOT FOUND IN SOURCE -msgid ":" -msgstr ":" - -#: html/Ticket/Elements/ShowBasics:53 -msgid "<% $Ticket->Status%>" -msgstr "<% $Ticket->Status%>" - -#: html/Elements/SelectTicketTypes:48 -msgid "<% $_ %>" -msgstr "<% $_ %>" - -#: html/Search/Elements/SelectLinks:48 -msgid "<%$_%>" -msgstr "<%$_%>" - -#: html/Search/Elements/DisplayOptions:73 -msgid "<%$field%>" -msgstr "<%$field%>" - -#: html/Elements/CreateTicket:47 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" class=\"button\" value=\"New ticket in\" /> %1" -msgstr "<input type=\"submit\" class=\"button\" value=\"提出申请单\" /> %1" - -#: docs/design_docs/string-extraction-guide.txt:54 lib/RT/StyleGuide.pod:787 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" value=\"New ticket in\"> %1" -msgstr "<input type=\"submit\" value=\"提出申请单\"> %1" - -#: etc/initialdata:218 -msgid "A blank template" -msgstr "空白模板" - -#: html/Admin/Users/Modify.html:371 -msgid "A password was not set, so user won't be able to login." -msgstr "口令没有设定,因此该使用者将无法登入。" - -#: NOT FOUND IN SOURCE -msgid "ACE Deleted" -msgstr "ACE 已删除" - -#: NOT FOUND IN SOURCE -msgid "ACE Loaded" -msgstr "ACE 已加载" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be deleted" -msgstr "无法删除 ACE" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be found" -msgstr "找不到 ACE" - -#: lib/RT/ACE_Overlay.pm:174 lib/RT/Principal_Overlay.pm:219 -msgid "ACE not found" -msgstr "找不到 ACE 设定" - -#: lib/RT/ACE_Overlay.pm:853 -msgid "ACEs can only be created and deleted." -msgstr "祇能新增或删除 ACE 设定。" - -#: NOT FOUND IN SOURCE -msgid "ACLEquivalence" -msgstr "ACLEquivalence" - -#: html/Search/Elements/SelectAndOr:46 -msgid "AND" -msgstr "AND" - -#: NOT FOUND IN SOURCE -msgid "Aborting to avoid unintended ticket modifications.\\n" -msgstr "离开以免不小心更改到申请单。\\n" - -#: NOT FOUND IN SOURCE -msgid "About Me" -msgstr "个人信息" - -#: html/User/Elements/Tabs:53 -msgid "About me" -msgstr "个人信息" - -#: NOT FOUND IN SOURCE -msgid "Access Right" -msgstr "系统使用登录权限" - -#: html/Admin/Users/Modify.html:106 -msgid "Access control" -msgstr "存取权限" - -#: html/Admin/Elements/EditScrip:65 -msgid "Action" -msgstr "动作" - -#: lib/RT/Scrip_Overlay.pm:172 -#. ($args{'ScripAction'}) -msgid "Action %1 not found" -msgstr "动作 %1 找不到" - -#: NOT FOUND IN SOURCE -msgid "Action committed." -msgstr "动作执行完毕" - -#: bin/rt-crontool:171 -msgid "Action committed.\\n" -msgstr "动作执行完毕。\\n" - -#: lib/RT/Scrip_Overlay.pm:168 -msgid "Action is mandatory argument" -msgstr "动作为必填字段" - -#: bin/rt-crontool:167 -msgid "Action prepared..." -msgstr "动作准备完毕..." - -#: NOT FOUND IN SOURCE -msgid "Activated Date" -msgstr "申请激活时间" - -#: html/Search/Build.html:85 -msgid "Add" -msgstr "新增" - -#: html/Search/Bulk.html:92 -msgid "Add AdminCc" -msgstr "新增管理员副本收件人" - -#: html/Search/Bulk.html:88 -msgid "Add Cc" -msgstr "新增副本收件人" - -#: html/Search/Elements/EditFormat:49 -msgid "Add Columns" -msgstr "新增字段" - -#: html/Search/Elements/PickCriteria:46 -msgid "Add Criteria" -msgstr "新增条件" - -#: NOT FOUND IN SOURCE -msgid "Add Entry" -msgstr "新增列" - -#: html/Ticket/Create.html:147 html/Ticket/Update.html:116 -msgid "Add More Files" -msgstr "新增更多附件" - -#: NOT FOUND IN SOURCE -msgid "Add Next State" -msgstr "新增下一项关卡" - -#: html/Search/Bulk.html:84 -msgid "Add Requestor" -msgstr "新增申请人" - -#: html/Admin/Elements/AddCustomFieldValue:46 -msgid "Add Value" -msgstr "新增字段值" - -#: NOT FOUND IN SOURCE -msgid "Add a Scrip to this queue" -msgstr "新增此表单的手续" - -#: NOT FOUND IN SOURCE -msgid "Add a Scrip which will apply to all queues" -msgstr "新增适用于所有表单的手续" - -#: NOT FOUND IN SOURCE -msgid "Add a keyword selection to this queue" -msgstr "新增此表单的关键词" - -#: NOT FOUND IN SOURCE -msgid "Add a new a global scrip" -msgstr "新增全域手续" - -#: NOT FOUND IN SOURCE -msgid "Add a scrip to this queue" -msgstr "新增一道手续到此表单" - -#: html/Admin/Global/Scrip.html:83 -msgid "Add a scrip which will apply to all queues" -msgstr "新增一道用于所有表单的手续" - -#: NOT FOUND IN SOURCE -msgid "Add additional criteria" -msgstr "新增查询条件" - -#: html/Search/Build.html:109 html/Search/Build.html:94 -msgid "Add and Search" -msgstr "新增并开始查询" - -#: html/Search/Bulk.html:124 -msgid "Add comments or replies to selected tickets" -msgstr "新增评论或回复到指定的申请单" - -#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 -msgid "Add members" -msgstr "新增成员" - -#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 -msgid "Add new watchers" -msgstr "新增视察员" - -#: html/Search/Build.html:85 -msgid "Add these terms to your search" -msgstr "将这些条件加进查询内" - -#: html/Search/Bulk.html:158 -msgid "Add values" -msgstr "新增值" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "Add, delete and modify custom field values for objects" -msgstr "新增、删除及修改对象的自订字段值" - -#: NOT FOUND IN SOURCE -msgid "AddNextState" -msgstr "新增下一项关卡" - -#: lib/RT/Queue_Overlay.pm:763 -#. ($args{'Type'}) -msgid "Added principal as a %1 for this queue" -msgstr "单位已新增为此表单的 %1" - -#: lib/RT/Ticket_Overlay.pm:1455 -#. ($self->loc($args{'Type'})) -msgid "Added principal as a %1 for this ticket" -msgstr "单位已新增为此申请单的 %1" - -#: NOT FOUND IN SOURCE -msgid "Additional Hints" -msgstr "额外提示" - -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 -msgid "Address1" -msgstr "住址" - -#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 -msgid "Address2" -msgstr "住址(续)" - -#: NOT FOUND IN SOURCE -msgid "Adjust Blinking Rate" -msgstr "调整闪烁速度快慢" - -#: NOT FOUND IN SOURCE -msgid "Admin" -msgstr "管理员" - -#: html/Ticket/Create.html:98 -msgid "Admin Cc" -msgstr "管理员副本" - -#: etc/initialdata:295 -msgid "Admin Comment" -msgstr "管理员评论" - -#: etc/initialdata:274 -msgid "Admin Correspondence" -msgstr "管理员回复" - -#: NOT FOUND IN SOURCE -msgid "Admin Rights" -msgstr "管理员权限" - -#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 -msgid "Admin queues" -msgstr "表单管理" - -#: NOT FOUND IN SOURCE -msgid "Admin users" -msgstr "使用者管理" - -#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 -msgid "Admin/Global configuration" -msgstr "管理/全域设定" - -#: NOT FOUND IN SOURCE -msgid "Admin/Groups" -msgstr "管理/群组" - -#: NOT FOUND IN SOURCE -msgid "Admin/Queue/Basics" -msgstr "管理/表单/基本信息" - -#: NOT FOUND IN SOURCE -msgid "AdminAddress" -msgstr "管理员 Email" - -#: NOT FOUND IN SOURCE -msgid "AdminAllPersonalGroups" -msgstr "管理所有代理人群组" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:113 -msgid "AdminCc" -msgstr "管理员副本" - -msgid "AdminCc.EmailAddress" -msgstr "管理员副本: 电子邮件信箱" - -msgid "Cc.EmailAddress" -msgstr "副本: 电子邮件信箱" - -msgid "Requestor.EmailAddress" -msgstr "申请人: 电子邮件信箱" - -msgid "Custom.Ownership" -msgstr "自订: 承办状态" - -#: NOT FOUND IN SOURCE -msgid "AdminComment" -msgstr "管理员评论" - -#: NOT FOUND IN SOURCE -msgid "AdminCorrespondence" -msgstr "管理员回复" - -#: lib/RT/CustomField_Overlay.pm:106 -msgid "AdminCustomField" -msgstr "管理自订字段" - -#: NOT FOUND IN SOURCE -msgid "AdminCustomFields" -msgstr "管理自订字段" - -#: lib/RT/Group_Overlay.pm:163 -msgid "AdminGroup" -msgstr "管理群组" - -#: NOT FOUND IN SOURCE -msgid "AdminGroupDescription" -msgstr "管理群组描述" - -#: lib/RT/Group_Overlay.pm:165 -msgid "AdminGroupMembership" -msgstr "管理群组成员" - -#: NOT FOUND IN SOURCE -msgid "AdminGroupName" -msgstr "管理群组名称" - -#: NOT FOUND IN SOURCE -msgid "AdminGroupPermission" -msgstr "管理群组权限" - -#: NOT FOUND IN SOURCE -msgid "AdminGroupStatus" -msgstr "管理群组状态" - -#: lib/RT/System.pm:80 -msgid "AdminOwnPersonalGroups" -msgstr "管理代理人群组" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "AdminQueue" -msgstr "管理表单" - -#: lib/RT/System.pm:81 -msgid "AdminUsers" -msgstr "管理使用者" - -#: NOT FOUND IN SOURCE -msgid "Administrative" -msgstr "行政类" - -#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 -msgid "Administrative Cc" -msgstr "管理员副本" - -#: NOT FOUND IN SOURCE -msgid "Admins" -msgstr "主管" - -#: html/Ticket/Elements/Tabs:216 -msgid "Advanced" -msgstr "进阶" - -#: NOT FOUND IN SOURCE -msgid "Advanced Search" -msgstr "进阶查询" - -#: NOT FOUND IN SOURCE -msgid "Advanced Search Criteria" -msgstr "进阶查询条件" - -#: html/Elements/SelectDateRelation:57 -msgid "After" -msgstr "晚于" - -#: NOT FOUND IN SOURCE -msgid "Age" -msgstr "经历时间" - -#: html/Search/Elements/PickCriteria:52 -msgid "Aggregator" -msgstr "结合方式" - -#: NOT FOUND IN SOURCE -msgid "Alias" -msgstr "执行其它流程" - -#: NOT FOUND IN SOURCE -msgid "Alias for" -msgstr "相当于" - -#: NOT FOUND IN SOURCE -msgid "All" -msgstr "全部" - -#: etc/initialdata:363 -msgid "All Approvals Passed" -msgstr "完成全部签核" - -#: NOT FOUND IN SOURCE -msgid "All Condition" -msgstr "所有条件" - -#: NOT FOUND IN SOURCE -msgid "All Custom Fields" -msgstr "所有自订字段" - -#: html/Admin/Queues/index.html:75 -msgid "All Queues" -msgstr "所有表单" - -#: NOT FOUND IN SOURCE -msgid "All Users" -msgstr "全体员工" - -#: NOT FOUND IN SOURCE -msgid "All done! Now you can proceed to %1." -msgstr "处理完毕!您现在可以继续进行 %1。" - -#: NOT FOUND IN SOURCE -msgid "Allowance Request" -msgstr "福利补助申请" - -#: NOT FOUND IN SOURCE -msgid "Always sends a message to the requestors independent of message sender" -msgstr "无论寄件来源为何,一律寄信给申请人" - -#: NOT FOUND IN SOURCE -msgid "Amount" -msgstr "数额" - -#: html/Search/Elements/EditQuery:56 -msgid "And/Or" -msgstr "AND/OR" - -#: NOT FOUND IN SOURCE -msgid "Any Condition" -msgstr "任意条件" - -#: NOT FOUND IN SOURCE -msgid "Applies To" -msgstr "套用于" - -#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 -msgid "Applies to" -msgstr "套用于" - -#: html/Search/Edit.html:64 -msgid "Apply" -msgstr "套用" - -#: NOT FOUND IN SOURCE -msgid "Apply Template" -msgstr "引用模板" - -#: html/Search/Edit.html:64 -msgid "Apply your changes" -msgstr "套用更动" - -#: html/Elements/Tabs:77 -msgid "Approval" -msgstr "签核" - -#: html/Approvals/Display.html:65 html/Approvals/Elements/ShowDependency:63 html/Approvals/index.html:86 -#. ($Ticket->Id, $Ticket->Subject) -#. ($ticket->id, $msg) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Approval #%1: %2" -msgstr "签核单 #%1:%2" - -#: html/Approvals/index.html:75 -#. ($ticket->Id) -msgid "Approval #%1: Notes not recorded due to a system error" -msgstr "签核单 #%1:系统错误,记录失败" - -#: html/Approvals/index.html:73 -#. ($ticket->Id) -msgid "Approval #%1: Notes recorded" -msgstr "签核单 #%1:记录完毕" - -#: NOT FOUND IN SOURCE -msgid "Approval Details" -msgstr "签核细节" - -#: NOT FOUND IN SOURCE -msgid "Approval Due" -msgstr "签核时限" - -#: NOT FOUND IN SOURCE -msgid "Approval Notes" -msgstr "签核意见" - -#: etc/initialdata:351 -msgid "Approval Passed" -msgstr "完成某项签核" - -#: etc/initialdata:374 -msgid "Approval Rejected" -msgstr "驳回某项签核" - -#: NOT FOUND IN SOURCE -msgid "Approval Result" -msgstr "签核结果" - -#: NOT FOUND IN SOURCE -msgid "Approval Status" -msgstr "核准结果" - -#: NOT FOUND IN SOURCE -msgid "Approval Type" -msgstr "签核种类" - -#: NOT FOUND IN SOURCE -msgid "Approval diagram" -msgstr "签核流程" - -#: html/Approvals/Elements/Approve:69 -msgid "Approve" -msgstr "核准" - -#: NOT FOUND IN SOURCE -msgid "Approver" -msgstr "签核人" - -#: NOT FOUND IN SOURCE -msgid "Approver Setting" -msgstr "执行签核人设定" - -#: etc/initialdata:504 -msgid "Approver's notes: %1" -msgstr "签核备注:%1" - -#: NOT FOUND IN SOURCE -msgid "Apr" -msgstr "四月" - -#: lib/RT/Date.pm:444 -msgid "Apr." -msgstr "04" - -#: NOT FOUND IN SOURCE -msgid "April" -msgstr "四月" - -#: NOT FOUND IN SOURCE -msgid "Are you sure to delete checked items?" -msgstr "您确定要删除?" - -#: html/Search/Elements/DisplayOptions:81 -msgid "Asc" -msgstr "递增" - -#: html/Elements/SelectSortOrder:56 -msgid "Ascending" -msgstr "递增" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "Assign and remove custom fields" -msgstr "指派及移除自订字段" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "AssignCustomFields" -msgstr "指派自订字段" - -#: html/Search/Bulk.html:142 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:116 -msgid "Attach" -msgstr "附件" - -#: html/SelfService/Create.html:92 html/Ticket/Create.html:143 -msgid "Attach file" -msgstr "附加档案" - -#: html/SelfService/Update.html:75 html/Ticket/Create.html:131 html/Ticket/Update.html:94 -msgid "Attached file" -msgstr "现有附件" - -#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 -#. ($Attachment) -msgid "Attachment '%1' could not be loaded" -msgstr "无法加载附件 '%1'" - -#: lib/RT/Transaction_Overlay.pm:489 -msgid "Attachment created" -msgstr "附件新增完毕" - -#: lib/RT/Tickets_Overlay.pm:1945 -msgid "Attachment filename" -msgstr "附件档名" - -#: html/Ticket/Elements/ShowAttachments:47 -msgid "Attachments" -msgstr "附件" - -#: lib/RT/Attributes_Overlay.pm:171 -msgid "Attribute Deleted" -msgstr "已删除该属性" - -#: NOT FOUND IN SOURCE -msgid "Attributes" -msgstr "属性" - -#: NOT FOUND IN SOURCE -msgid "Aug" -msgstr "八月" - -#: lib/RT/Date.pm:448 -msgid "Aug." -msgstr "08" - -#: NOT FOUND IN SOURCE -msgid "August" -msgstr "八月" - -#: NOT FOUND IN SOURCE -msgid "AuthSystem" -msgstr "认证方式" - -#: NOT FOUND IN SOURCE -msgid "AutoReject" -msgstr "自动驳回表单" - -#: NOT FOUND IN SOURCE -msgid "AutoResolve" -msgstr "自动完成表单处理" - -#: etc/initialdata:221 -msgid "Autoreply" -msgstr "自动回复" - -#: etc/initialdata:72 -msgid "Autoreply To Requestors" -msgstr "自动对申请人回复" - -#: NOT FOUND IN SOURCE -msgid "AutoreplyToRequestors" -msgstr "自动对申请人回复" - -#: html/Widgets/SelectionBox:185 -msgid "Available" -msgstr "可用" - -#: NOT FOUND IN SOURCE -msgid "Available Columns" -msgstr "可用的字段:" - -#: NOT FOUND IN SOURCE -msgid "Available Rights:" -msgstr "权限项目列表:" - -#: NOT FOUND IN SOURCE -msgid "Back to Homepage" -msgstr "回到首页" - -#: NOT FOUND IN SOURCE -msgid "Back to Previous" -msgstr "回上页" - -#: NOT FOUND IN SOURCE -msgid "Bad PGP Signature: %1\\n" -msgstr "错误的 PGP 签章:%1\\n" - -#: NOT FOUND IN SOURCE -msgid "Bad attachment id. Couldn't find attachment '%1'\\n" -msgstr "错误的附件编号。无法找到附件 '%1'\\n" - -#: NOT FOUND IN SOURCE -msgid "Bad data in %1" -msgstr "%1 的数据错误" - -#: NOT FOUND IN SOURCE -msgid "Bad transaction number for attachment. %1 should be %2\\n" -msgstr "附件的处理号码错误。%1 应为 %2\\n" - -#: html/Admin/Elements/CustomFieldTabs:65 html/Admin/Elements/GroupTabs:60 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/UserTabs:58 html/Ticket/Elements/Tabs:113 html/User/Elements/GroupTabs:59 -msgid "Basics" -msgstr "基本信息" - -#: NOT FOUND IN SOURCE -msgid "Batch Approval" -msgstr "批次签核" - -#: html/Ticket/Update.html:88 -msgid "Bcc" -msgstr "密件副本" - -#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:89 -msgid "Be sure to save your changes" -msgstr "请别忘了储存修改。" - -#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:361 -msgid "Before" -msgstr "早于" - -#: NOT FOUND IN SOURCE -msgid "Begin Approval" -msgstr "开始签核" - -#: NOT FOUND IN SOURCE -msgid "Begin From " -msgstr "起始日" - -#: html/Elements/Logo:47 -msgid "Best Practical Solutions, LLC corporate logo" -msgstr "Best Practical Solutions, LLC 公司识别图案" - -#: NOT FOUND IN SOURCE -msgid "Binary" -msgstr "档案" - -#: NOT FOUND IN SOURCE -msgid "Birthday" -msgstr "生日" - -#: etc/initialdata:217 -msgid "Blank" -msgstr "空白模板" - -#: html/Search/Elements/EditFormat:84 -msgid "Bold" -msgstr "粗体" - -#: NOT FOUND IN SOURCE -msgid "Bookmarkable URL for this search" -msgstr "将查询结果转为可放入书签的网址" - -#: html/Search/Results.html:79 -msgid "Bookmarkable link" -msgstr "可放入书签的网址" - -#: html/Ticket/Elements/ShowHistory:64 html/Ticket/Elements/ShowHistory:69 -msgid "Brief headers" -msgstr "精简标头档" - -#: html/Ticket/Elements/Tabs:227 -msgid "Bulk Update" -msgstr "整批更新" - -#: NOT FOUND IN SOURCE -msgid "Bulk ticket update" -msgstr "整批更新申请单" - -#: NOT FOUND IN SOURCE -msgid "Business Unit" -msgstr "事业部" - -#: NOT FOUND IN SOURCE -msgid "Business Unit:" -msgstr "事业部:" - -#: lib/RT/User_Overlay.pm:1853 -msgid "Can not modify system users" -msgstr "无法更改系统使用者" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "Can this principal see this queue" -msgstr "该单位是否能查阅此表单" - -#: lib/RT/CustomField_Overlay.pm:379 -msgid "Can't add a custom field value without a name" -msgstr "不能新增没有名称的自订字段值" - -#: html/Admin/CustomFields/Objects.html:86 -#. ($Class) -msgid "Can't find a collection class for '%1'" -msgstr "找不到‘%1’的集合类别" - -#: html/Search/Build.html:286 -msgid "Can't find a saved search to work with" -msgstr "找不到预存查询" - -#: lib/RT/Link_Overlay.pm:159 -msgid "Can't link a ticket to itself" -msgstr "申请单不能链接自己。" - -#: NOT FOUND IN SOURCE -msgid "Can't merge into a merged ticket. You should never get this error" -msgstr "不能整合进已整合过的申请单。这个错误不该发生。" - -#: html/Widgets/SavedSearch:63 -#. (loc($self->{SearchType})) -msgid "Can't save %1" -msgstr "无法储存 %1" - -#: html/Search/Build.html:290 -msgid "Can't save this search" -msgstr "无法储存此项查询" - -#: lib/RT/Record.pm:1282 lib/RT/Record.pm:1358 -msgid "Can't specifiy both base and target" -msgstr "不能同时指定起始申请单与目的申请单" - -#: NOT FOUND IN SOURCE -msgid "Cancel" -msgstr "取消" - -#: html/autohandler:204 -#. ($msg) -msgid "Cannot create user: %1" -msgstr "无法新增使用者:%1" - -#: NOT FOUND IN SOURCE -msgid "Cannot login: Your system clock differs from server's by %1 seconds!" -msgstr "您的系统时钟和服务器相差 %1 秒,无法登入!" - -#: NOT FOUND IN SOURCE -msgid "Card No." -msgstr "卡号" - -#: NOT FOUND IN SOURCE -msgid "Categories" -msgstr "分类管理" - -#: html/Admin/Elements/AddCustomFieldValue:62 html/Admin/Elements/EditCustomFieldValues:58 -msgid "Category" -msgstr "分类" - -#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:88 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:83 lib/RT/ACE_Overlay.pm:112 -msgid "Cc" -msgstr "副本" - -#: NOT FOUND IN SOURCE -msgid "Cc Type" -msgstr "副本类别" - -#: NOT FOUND IN SOURCE -msgid "Chairperson's Office" -msgstr "董事长室" - -#: NOT FOUND IN SOURCE -msgid "Change Ticket" -msgstr "修改申请单" - -#: html/SelfService/Prefs.html:52 -msgid "Change password" -msgstr "更改口令" - -#: NOT FOUND IN SOURCE -msgid "ChangeOwnerUI" -msgstr "可否选择表单承办人" - -#: html/Elements/Submit:78 -msgid "Check All" -msgstr "全部选取" - -#: html/SelfService/Update.html:78 html/Ticket/Create.html:134 html/Ticket/Update.html:97 -msgid "Check box to delete" -msgstr "选择欲删除的项目" - -#: html/Admin/Elements/SelectRights:55 -msgid "Check box to revoke right" -msgstr "选择欲撤消的权利" - -#: html/Elements/EditLinks:148 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:223 html/Ticket/Elements/BulkLinks:64 -msgid "Children" -msgstr "子申请单" - -#: NOT FOUND IN SOURCE -msgid "Chinese Name" -msgstr "中文姓名" - -#: NOT FOUND IN SOURCE -msgid "Chinese/English" -msgstr "中英文" - -#: html/NoAuth/js/util.js:201 -msgid "Choose a date" -msgstr "选择日期" - -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 -msgid "City" -msgstr "所在城市" - -#: NOT FOUND IN SOURCE -msgid "ClassicUI" -msgstr "传统接口" - -#: html/Elements/Submit:80 -msgid "Clear All" -msgstr "全部清除" - -#: html/Helpers/CalPopup.html:51 -msgid "Close window" -msgstr "关闭窗口" - -#: html/Ticket/Elements/ShowDates:68 -msgid "Closed" -msgstr "已解决" - -#: NOT FOUND IN SOURCE -msgid "Closed Tickets" -msgstr "已解决的申请单" - -#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:78 -msgid "Closed tickets" -msgstr "已解决的申请单" - -#: NOT FOUND IN SOURCE -msgid "Code" -msgstr "执行程序码" - -#: lib/RT/CustomField_Overlay.pm:89 -msgid "Combobox: Select or enter multiple values" -msgstr "下拉文字框:选择或键入多重项目" - -#: lib/RT/CustomField_Overlay.pm:90 -msgid "Combobox: Select or enter one value" -msgstr "下拉文字框:选择或键入单一项目" - -#: lib/RT/CustomField_Overlay.pm:91 -msgid "Combobox: Select or enter up to %1 values" -msgstr "下拉文字框:选择或键入最多 %1 个项目" - -#: NOT FOUND IN SOURCE -msgid "Command not understood!\\n" -msgstr "指令无法辨识!\\n" - -#: html/Ticket/Elements/ShowTransaction:190 html/Ticket/Elements/Tabs:185 -msgid "Comment" -msgstr "评论" - -#: html/Admin/Queues/Modify.html:79 -msgid "Comment Address" -msgstr "评论电子邮件地址" - -#: NOT FOUND IN SOURCE -msgid "Comment not recorded" -msgstr "评论未被纪录" - -#: lib/RT/Queue_Overlay.pm:111 -msgid "Comment on tickets" -msgstr "对申请单提出评论" - -#: lib/RT/Queue_Overlay.pm:111 -msgid "CommentOnTicket" -msgstr "评论申请单" - -#: NOT FOUND IN SOURCE -msgid "Comments" -msgstr "评论" - -#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:75 -msgid "Comments (Not sent to requestors)" -msgstr "评论(不送给申请人)" - -#: html/Search/Bulk.html:128 -msgid "Comments (not sent to requestors)" -msgstr "评论(不送给申请人)" - -#: NOT FOUND IN SOURCE -msgid "Comments about %1" -msgstr "对 %1 的评论" - -#: html/Admin/Users/Modify.html:225 html/Ticket/Elements/ShowRequestor:67 -msgid "Comments about this user" -msgstr "使用者描述" - -#: lib/RT/Transaction_Overlay.pm:634 -msgid "Comments added" -msgstr "新增评论完毕" - -#: NOT FOUND IN SOURCE -msgid "Commit" -msgstr "确认" - -#: lib/RT/Action/Generic.pm:175 -msgid "Commit Stubbed" -msgstr "消除更动完毕" - -#: NOT FOUND IN SOURCE -msgid "Company Name" -msgstr "公司名称" - -#: NOT FOUND IN SOURCE -msgid "CompanySpecific" -msgstr "各公司独立显示" - -#: NOT FOUND IN SOURCE -msgid "Compile Restrictions" -msgstr "设定查询条件" - -#: html/Admin/Elements/EditScrip:59 -msgid "Condition" -msgstr "条件" - -#: lib/RT/Scrip_Overlay.pm:184 -msgid "Condition is mandatory argument" -msgstr "条件是必填字段" - -#: bin/rt-crontool:151 -msgid "Condition matches..." -msgstr "符合条件..." - -#: lib/RT/Scrip_Overlay.pm:188 -msgid "Condition not found" -msgstr "未找到符合的现况" - -#: html/Elements/Tabs:84 -msgid "Configuration" -msgstr "设定" - -#: html/SelfService/Prefs.html:54 -msgid "Confirm" -msgstr "确认口令" - -#: NOT FOUND IN SOURCE -msgid "Confirm Password" -msgstr "口令确认" - -#: NOT FOUND IN SOURCE -msgid "Confirm Submit" -msgstr "确定送出" - -#: NOT FOUND IN SOURCE -msgid "Contact System Administrator" -msgstr "连络系统管理员" - -#: NOT FOUND IN SOURCE -msgid "ContactInfoSystem" -msgstr "连络信息系统" - -#: NOT FOUND IN SOURCE -msgid "Contacted date '%1' could not be parsed" -msgstr "无法解读联络日期 '%1'" - -#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 -msgid "Content" -msgstr "内容" - -#: html/Elements/SelectAttachmentField:49 -msgid "Content-Type" -msgstr "内容类型" - -#: NOT FOUND IN SOURCE -msgid "Coould not create group" -msgstr "无法新增群组" - -#: html/Search/Elements/EditSearches:65 -msgid "Copy" -msgstr "复制" - -#: NOT FOUND IN SOURCE -msgid "Copy Field From:" -msgstr "欲复制字段:" - -#: etc/initialdata:286 -msgid "Correspondence" -msgstr "回复" - -#: NOT FOUND IN SOURCE -msgid "Correspondence Address" -msgstr "申请单回复地址" - -#: lib/RT/Transaction_Overlay.pm:630 -msgid "Correspondence added" -msgstr "新增申请单回复" - -#: NOT FOUND IN SOURCE -msgid "Correspondence not recorded" -msgstr "未纪录申请单回复" - -#: NOT FOUND IN SOURCE -msgid "Could not add new custom field value for ticket. " -msgstr "不能新增自订字段的值。" - -#: NOT FOUND IN SOURCE -msgid "Could not add new custom field value for ticket. %1 " -msgstr "不能新增自订字段的值。%1 " - -#: lib/RT/Record.pm:1707 -msgid "Could not add new custom field value. " -msgstr "不能新增自订字段的值。" - -#: lib/RT/Record.pm:1660 -#. (, $value_msg) -msgid "Could not add new custom field value. %1 " -msgstr "不能新增自订字段的值。%1 " - -#: lib/RT/Ticket_Overlay.pm:3048 lib/RT/Ticket_Overlay.pm:3056 lib/RT/Ticket_Overlay.pm:3073 -msgid "Could not change owner. " -msgstr "不能更改承办人。" - -#: html/Admin/CustomFields/Modify.html:161 -#. ($msg) -msgid "Could not create CustomField" -msgstr "无法新增自订字段" - -#: html/Admin/Elements/EditCustomField:113 -#. ($msg) -msgid "Could not create CustomField: %1" -msgstr "无法新增自订字段:%1" - -#: NOT FOUND IN SOURCE -msgid "Could not create Scrip" -msgstr "无法建立讯息通知" - -#: NOT FOUND IN SOURCE -msgid "Could not create Template" -msgstr "无法建立通知模板" - -#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:494 lib/RT/Group_Overlay.pm:501 -msgid "Could not create group" -msgstr "无法新增群组" - -#: NOT FOUND IN SOURCE -msgid "Could not create item" -msgstr "无法新增项目" - -#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 -#. ($msg) -msgid "Could not create template: %1" -msgstr "无法新增模板:%1" - -#: lib/RT/Ticket_Overlay.pm:1075 lib/RT/Ticket_Overlay.pm:407 -msgid "Could not create ticket. Queue not set" -msgstr "无法新增申请单。尚未指定表单。" - -#: lib/RT/User_Overlay.pm:255 lib/RT/User_Overlay.pm:269 lib/RT/User_Overlay.pm:278 lib/RT/User_Overlay.pm:287 lib/RT/User_Overlay.pm:296 lib/RT/User_Overlay.pm:310 lib/RT/User_Overlay.pm:320 lib/RT/User_Overlay.pm:496 -msgid "Could not create user" -msgstr "无法新增使用者" - -#: NOT FOUND IN SOURCE -msgid "Could not create watcher for requestor" -msgstr "无法为申请人新增视察员" - -#: NOT FOUND IN SOURCE -msgid "Could not create workflow: %1" -msgstr "无法新增流程:%1" - -#: NOT FOUND IN SOURCE -msgid "Could not find a ticket with id %1" -msgstr "找不到编号 %1 的申请单" - -#: NOT FOUND IN SOURCE -msgid "Could not find group %1." -msgstr "找不到群组 %1。" - -#: lib/RT/Queue_Overlay.pm:741 lib/RT/Ticket_Overlay.pm:1423 -msgid "Could not find or create that user" -msgstr "找不到或无法新增该名使用者" - -#: lib/RT/Queue_Overlay.pm:802 lib/RT/Ticket_Overlay.pm:1504 -msgid "Could not find that principal" -msgstr "找不到该单位" - -#: NOT FOUND IN SOURCE -msgid "Could not find user %1." -msgstr "找不到使用者 %1。" - -#: html/Admin/CustomFields/Objects.html:69 -msgid "Could not load CustomField %1" -msgstr "无法加载字段 %1" - -#: html/Admin/Groups/Members.html:112 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 -msgid "Could not load group" -msgstr "无法加载群组" - -#: lib/RT/SavedSearch.pm:119 -#. ($privacy) -msgid "Could not load object for %1" -msgstr "无法为 %1 加载对象" - -#: lib/RT/SavedSearch.pm:197 -msgid "Could not load search attribute" -msgstr "无法加载查询属性" - -#: lib/RT/Queue_Overlay.pm:761 -#. ($args{'Type'}) -msgid "Could not make that principal a %1 for this queue" -msgstr "无法将该单位设为此表单的 %1。" - -#: lib/RT/Ticket_Overlay.pm:1444 -#. ($self->loc($args{'Type'})) -msgid "Could not make that principal a %1 for this ticket" -msgstr "无法将该单位设为此申请单的 %1。" - -#: lib/RT/Queue_Overlay.pm:860 -#. ($args{'Type'}) -msgid "Could not remove that principal as a %1 for this queue" -msgstr "无法将单位 %1 从表单移除。" - -#: NOT FOUND IN SOURCE -msgid "Could not remove that principal as a %1 for this ticket" -msgstr "无法将单位 %1 从申请单移除。" - -#: lib/RT/User_Overlay.pm:191 -msgid "Could not set user info" -msgstr "无法设定使用者信息" - -#: lib/RT/Transaction_Overlay.pm:159 -msgid "Couldn't add attachment" -msgstr "无法新增附件" - -#: lib/RT/Group_Overlay.pm:1003 -msgid "Couldn't add member to group" -msgstr "无法新增成员至群组" - -#: lib/RT/Record.pm:1719 lib/RT/Record.pm:1771 -#. ($Msg) -msgid "Couldn't create a transaction: %1" -msgstr "无法新增更动报告" - -#: NOT FOUND IN SOURCE -msgid "Couldn't figure out what to do from gpg's reply\\n" -msgstr "无法从 gpg 回函辨识出该采取的行动\\n" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find group\\n" -msgstr "找不到群组\\n" - -#: lib/RT/Record.pm:953 -msgid "Couldn't find row" -msgstr "找不到此列数据" - -#: lib/RT/Group_Overlay.pm:977 -msgid "Couldn't find that principal" -msgstr "找不到该单位" - -#: lib/RT/CustomField_Overlay.pm:409 -msgid "Couldn't find that value" -msgstr "找不到该值" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find that watcher" -msgstr "找不到该视察员" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find user\\n" -msgstr "找不到使用者\\n" - -#: lib/RT/CurrentUser.pm:145 -#. ($self->Id) -msgid "Couldn't load %1 from the users database.\\n" -msgstr "无法从使用者数据库加载 %1。\\n" - -#: html/Admin/CustomFields/UserRights.html:149 -#. ($id) -msgid "Couldn't load Class %1" -msgstr "无法加载类别 %1" - -#: html/Admin/CustomFields/GroupRights.html:107 -#. ($id) -msgid "Couldn't load CustomField %1" -msgstr "无法加载自订字段 %1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load KeywordSelects." -msgstr "无法加载 KeywordSelects。" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load RT config file '%1' %2" -msgstr "无法加载 RT 设定档 '%1' %2" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load Scrips." -msgstr "无法加载手续。" - -#: lib/RT/Ticket_Overlay.pm:2016 -#. ($self->Id) -msgid "Couldn't load copy of ticket #%1." -msgstr "无法加载申请单 %1 的复本。" - -#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 -#. ($id) -msgid "Couldn't load group %1" -msgstr "无法加载手续 %1" - -#: lib/RT/Link_Overlay.pm:202 lib/RT/Link_Overlay.pm:211 lib/RT/Link_Overlay.pm:238 -msgid "Couldn't load link" -msgstr "无法加载链接。" - -#: html/Admin/Elements/ObjectCustomFields:83 html/Admin/Queues/CustomFields.html:59 html/Admin/Users/CustomFields.html:59 -#. ($id) -msgid "Couldn't load object %1" -msgstr "无法加载对象 %1" - -#: html/Admin/Queues/People.html:142 -#. ($id) -msgid "Couldn't load queue" -msgstr "无法加载表单" - -#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 -#. ($id) -msgid "Couldn't load queue %1" -msgstr "无法加载表单 %1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load scrip" -msgstr "无法加载手续" - -#: html/Admin/Elements/EditScrip:126 html/Admin/Elements/EditScrip:167 -#. ($id) -msgid "Couldn't load scrip #%1" -msgstr "无法加载手续 %1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load template" -msgstr "无法加载模板" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load that user (%1)" -msgstr "无法加载该名使用者(%1)" - -#: html/SelfService/Display.html:158 lib/RT/Action/CreateTickets.pm:680 -#. ($id) -msgid "Couldn't load ticket '%1'" -msgstr "无法加载申请单 '%1'" - -#: lib/RT/Ticket_Overlay.pm:2643 -#. ($args{'URI'}) -msgid "Couldn't resolve '%1' into a URI." -msgstr "无法将‘%1’解读为网址" - -#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 -msgid "Country" -msgstr "国家" - -#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:133 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:65 html/Ticket/Create.html:168 html/Ticket/Create.html:235 -msgid "Create" -msgstr "新增" - -#: NOT FOUND IN SOURCE -msgid "Create Subgroup:" -msgstr "新增子群组:" - -#: etc/initialdata:135 -msgid "Create Tickets" -msgstr "新增申请单" - -#: NOT FOUND IN SOURCE -msgid "Create User:" -msgstr "新增成员:" - -#: html/Admin/CustomFields/Modify.html:150 html/Admin/Elements/EditCustomField:96 -msgid "Create a CustomField" -msgstr "新增自订字段" - -#: html/Admin/Queues/CustomField.html:69 -#. ($QueueObj->Name()) -msgid "Create a CustomField for queue %1" -msgstr "为 %1 表单新增自订字段" - -#: NOT FOUND IN SOURCE -msgid "Create a CustomField that applies to all queues" -msgstr "为 %1 表单新增自订字段" - -#: NOT FOUND IN SOURCE -msgid "Create a new Custom Field" -msgstr "新增自订字段" - -#: NOT FOUND IN SOURCE -msgid "Create a new global Scrip" -msgstr "新增全域手续" - -#: NOT FOUND IN SOURCE -msgid "Create a new global scrip" -msgstr "新增全域手续" - -#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 -msgid "Create a new group" -msgstr "新增群组" - -#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 -msgid "Create a new personal group" -msgstr "新增代理人群组" - -#: NOT FOUND IN SOURCE -msgid "Create a new queue" -msgstr "新增表单" - -#: NOT FOUND IN SOURCE -msgid "Create a new scrip" -msgstr "新增手续" - -#: NOT FOUND IN SOURCE -msgid "Create a new template" -msgstr "新增模板" - -#: html/Ticket/Create.html:47 html/Ticket/Create.html:51 html/Ticket/Create.html:60 -msgid "Create a new ticket" -msgstr "新增申请单" - -#: html/Admin/Users/Modify.html:252 html/Admin/Users/Modify.html:314 -msgid "Create a new user" -msgstr "新增使用者" - -#: NOT FOUND IN SOURCE -msgid "Create a new workflow" -msgstr "新增流程" - -#: html/Admin/Queues/Modify.html:125 -msgid "Create a queue" -msgstr "新增表单" - -#: NOT FOUND IN SOURCE -msgid "Create a queue called" -msgstr "新增表单名称" - -#: NOT FOUND IN SOURCE -msgid "Create a request" -msgstr "提出申请" - -#: html/Admin/Queues/Scrip.html:89 -#. ($QueueObj->Name) -msgid "Create a scrip for queue %1" -msgstr "为 %1 表单新增手续" - -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 -msgid "Create a template" -msgstr "新增模板" - -#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 -msgid "Create a ticket" -msgstr "提出申请单" - -#: NOT FOUND IN SOURCE -msgid "Create a workflow" -msgstr "新增流程" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1 / %2 / %3 " -msgstr "新增失败:%1 / %2 / %3" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1/%2/%3" -msgstr "新增失败:%1/%2/%3" - -#: NOT FOUND IN SOURCE -msgid "Create new item" -msgstr "建立新项目" - -#: etc/initialdata:137 -msgid "Create new tickets based on this scrip's template" -msgstr "依据此项手续内的模版,新增申请单" - -#: html/SelfService/Create.html:105 -msgid "Create ticket" -msgstr "新增申请单" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "Create tickets in this queue" -msgstr "在此表单中新增申请单" - -#: lib/RT/CustomField_Overlay.pm:106 -msgid "Create, delete and modify custom fields" -msgstr "新增、删除及更改自订字段" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "Create, delete and modify queues" -msgstr "新增、删除及更改表单" - -#: NOT FOUND IN SOURCE -msgid "Create, delete and modify the members of any user's personal groups" -msgstr "新增、删除及更改任何使用者的代理人群组" - -#: lib/RT/System.pm:80 -msgid "Create, delete and modify the members of personal groups" -msgstr "新增、删除及更改代理人群组" - -#: lib/RT/System.pm:81 -msgid "Create, delete and modify users" -msgstr "新增、删除及更改使用者" - -#: lib/RT/System.pm:87 -msgid "CreateSavedSearch" -msgstr "新增预存查询" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "CreateTicket" -msgstr "新增申请单" - -#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1169 -msgid "Created" -msgstr "新增日" - -#: html/Admin/CustomFields/Modify.html:163 html/Admin/Elements/EditCustomField:117 -#. ($CustomFieldObj->Name()) -msgid "Created CustomField %1" -msgstr "自订字段 %1 新增成功" - -#: html/Tools/Reports/Elements/Tabs:63 -msgid "Created in a date range" -msgstr "在指定日期内建立" - -#: NOT FOUND IN SOURCE -msgid "Created template %1" -msgstr "模板 %1 新增成功" - -#: html/Tools/Reports/CreatedByDates.html:52 -msgid "Created tickets in period, grouped by status" -msgstr "在指定日期内建立的申请单,依状态分组" - -#: NOT FOUND IN SOURCE -msgid "Created workflow %1" -msgstr "流程 %1 新增成功" - -#: html/Search/Elements/PickBasics:102 -msgid "Creator" -msgstr "建立者" - -#: NOT FOUND IN SOURCE -msgid "Currency" -msgstr "币别" - -#: NOT FOUND IN SOURCE -msgid "Current Approval Info" -msgstr "截至目前签核信息" - -#: NOT FOUND IN SOURCE -msgid "Current Custom Fields" -msgstr "现有自订字段" - -#: NOT FOUND IN SOURCE -msgid "Current Groups:" -msgstr "现有群组列表:" - -#: html/Elements/EditLinks:49 -msgid "Current Links" -msgstr "现有关系" - -#: NOT FOUND IN SOURCE -msgid "Current Rights:" -msgstr "现有权限:" - -#: html/Admin/Elements/EditScrips:51 -msgid "Current Scrips" -msgstr "现有手续" - -#: NOT FOUND IN SOURCE -msgid "Current Status" -msgstr "目前状态" - -#: NOT FOUND IN SOURCE -msgid "Current Templates" -msgstr "现有模板" - -#: NOT FOUND IN SOURCE -msgid "Current Watchers" -msgstr "现有视察员" - -#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 -msgid "Current members" -msgstr "现有成员" - -#: html/Admin/Elements/SelectRights:51 -msgid "Current rights" -msgstr "现有权限" - -#: html/Search/Elements/EditQuery:47 -msgid "Current search" -msgstr "现有查询条件" - -#: NOT FOUND IN SOURCE -msgid "Current search criteria" -msgstr "现有查询条件" - -#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 -msgid "Current watchers" -msgstr "现有视察员" - -#: NOT FOUND IN SOURCE -msgid "Custom Field #%1" -msgstr "自订字段 #%1" - -#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:205 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:56 -msgid "Custom Fields" -msgstr "自订字段" - -#: html/Admin/CustomFields/index.html:60 -#. ($lookup) -msgid "Custom Fields for %1" -msgstr "%1 的自订字段" - -#: NOT FOUND IN SOURCE -msgid "Custom Fields which apply to all queues" -msgstr "适用于所有表单的自订字段" - -#: html/Admin/Elements/EditScrip:107 -msgid "Custom action cleanup code" -msgstr "动作后执行程序" - -#: html/Admin/Elements/EditScrip:103 -msgid "Custom action preparation code" -msgstr "动作前执行程序" - -#: html/Admin/Elements/EditScrip:99 -msgid "Custom condition" -msgstr "自订条件" - -#: NOT FOUND IN SOURCE -msgid "Custom field %1 %2 %3" -msgstr "自订字段 %1 %2 %3" - -#: NOT FOUND IN SOURCE -msgid "Custom field %1 does not apply to this object" -msgstr "自订字段 %1 不适用于此对象" - -#: lib/RT/Tickets_Overlay.pm:2424 -#. ($CF->Name) -msgid "Custom field %1 has a value." -msgstr "自订字段 %1 已有值" - -#: lib/RT/Tickets_Overlay.pm:2420 -#. ($CF->Name) -msgid "Custom field %1 has no value." -msgstr "自订字段 %1 没有值" - -#: lib/RT/Record.pm:1592 lib/RT/Record.pm:1754 -#. ($args{'Field'}) -msgid "Custom field %1 not found" -msgstr "找不到自订字段 %1" - -#: lib/RT/Report/Tickets.pm:118 lib/RT/Report/Tickets.pm:121 -#. ($cf) -#. ($obj->Name) -msgid "Custom field '%1'" -msgstr "自订字段‘%1’" - -#: NOT FOUND IN SOURCE -msgid "Custom field deleted" -msgstr "自订字段已删除" - -#: NOT FOUND IN SOURCE -msgid "Custom field not found" -msgstr "找不到自订字段" - -#: lib/RT/CustomField_Overlay.pm:1157 -#. ($args{'Content'}, $self->Name) -msgid "Custom field value %1 could not be found for custom field %2" -msgstr "无法从自订字段 %2 中找到 %1 这个字段值" - -#: NOT FOUND IN SOURCE -msgid "Custom field value changed from %1 to %2" -msgstr "自订字段值从 %1 改为 %2" - -#: lib/RT/CustomField_Overlay.pm:419 -msgid "Custom field value could not be deleted" -msgstr "无法删除自订字段值" - -#: lib/RT/CustomField_Overlay.pm:1169 -msgid "Custom field value could not be found" -msgstr "找不到自订字段值" - -#: lib/RT/CustomField_Overlay.pm:1171 lib/RT/CustomField_Overlay.pm:417 -msgid "Custom field value deleted" -msgstr "自订字段值删除成功" - -#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:638 -msgid "CustomField" -msgstr "自订字段" - -#: html/Prefs/MyRT.html:78 html/Prefs/Quicksearch.html:70 html/Prefs/Search.html:75 -msgid "Customize" -msgstr "自订" - -#: NOT FOUND IN SOURCE -msgid "Data error" -msgstr "数据错误" - -#: NOT FOUND IN SOURCE -msgid "DatabaseBindRemote" -msgstr "容许外部联机" - -#: NOT FOUND IN SOURCE -msgid "DatabaseName" -msgstr "MySQL数据库" - -#: NOT FOUND IN SOURCE -msgid "Date of Departure" -msgstr "出发日期" - -#: html/SelfService/Display.html:61 html/Ticket/Create.html:203 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 -msgid "Dates" -msgstr "日期" - -#: NOT FOUND IN SOURCE -msgid "Dec" -msgstr "十二月" - -#: lib/RT/Date.pm:452 -msgid "Dec." -msgstr "12" - -#: NOT FOUND IN SOURCE -msgid "December" -msgstr "十二月" - -#: NOT FOUND IN SOURCE -msgid "Default Approval" -msgstr "预设签核" - -#: NOT FOUND IN SOURCE -msgid "Default Autoresponse Template" -msgstr "预设自动响应模板" - -#: etc/initialdata:222 -msgid "Default Autoresponse template" -msgstr "预设自动响应模板" - -#: html/Tools/Offline.html:61 -msgid "Default Queue" -msgstr "预设表单" - -#: html/Tools/Offline.html:70 -msgid "Default Requestor" -msgstr "预设申请人" - -#: NOT FOUND IN SOURCE -msgid "Default Value" -msgstr "预设值" - -#: etc/initialdata:296 -msgid "Default admin comment template" -msgstr "预设管理员评论模板" - -#: etc/initialdata:275 -msgid "Default admin correspondence template" -msgstr "预设管理员回复模板" - -#: etc/initialdata:287 -msgid "Default correspondence template" -msgstr "预设回复模板" - -#: etc/initialdata:253 -msgid "Default transaction template" -msgstr "预设更动模板" - -#: NOT FOUND IN SOURCE -msgid "Default: %1/%2 changed from %3 to %4" -msgstr "预设:%1/%2 已自 %3 改为 %4" - -#: NOT FOUND IN SOURCE -msgid "DefaultApproval" -msgstr "预设签核" - -#: html/User/Delegation.html:46 html/User/Delegation.html:49 -msgid "Delegate rights" -msgstr "代理人权限" - -#: lib/RT/System.pm:84 -msgid "Delegate specific rights which have been granted to you." -msgstr "将拥有的权限委托他人代理" - -#: lib/RT/System.pm:84 -msgid "DelegateRights" -msgstr "设定代理人" - -#: NOT FOUND IN SOURCE -msgid "Delegated Approval" -msgstr "代理签核" - -#: NOT FOUND IN SOURCE -msgid "Delegated Queue" -msgstr "代理表单名称" - -#: NOT FOUND IN SOURCE -msgid "Delegated Queue:" -msgstr "代理表单:" - -#: NOT FOUND IN SOURCE -msgid "Delegated Type" -msgstr "代理表单种类" - -#: NOT FOUND IN SOURCE -msgid "Delegates" -msgstr "代理人" - -#: NOT FOUND IN SOURCE -msgid "Delegates Enabled Status" -msgstr "代理激活状态" - -#: NOT FOUND IN SOURCE -msgid "Delegates Info" -msgstr "代理人信息" - -#: NOT FOUND IN SOURCE -msgid "Delegates Period" -msgstr "代理期间" - -#: NOT FOUND IN SOURCE -msgid "Delegates Permission Setting" -msgstr "代理权限设定" - -#: NOT FOUND IN SOURCE -msgid "Delegates Permission:" -msgstr "代理权限:" - -#: NOT FOUND IN SOURCE -msgid "Delegates Setting" -msgstr "代理人设定" - -#: NOT FOUND IN SOURCE -msgid "Delegates Status" -msgstr "代理状态" - -#: html/User/Elements/Tabs:59 -msgid "Delegation" -msgstr "代理人权限" - -#: NOT FOUND IN SOURCE -msgid "Delegation Groups" -msgstr "代理人群组" - -#: NOT FOUND IN SOURCE -msgid "Delegation Rights" -msgstr "代理人权限" - -#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 html/Widgets/SelectionBox:204 -msgid "Delete" -msgstr "删除" - -#: html/Admin/Elements/EditTemplates:79 -msgid "Delete Template" -msgstr "删除模板" - -#: lib/RT/SavedSearch.pm:220 -#. ($msg) -msgid "Delete failed: %1" -msgstr "删除失败:%1" - -#: html/Admin/Elements/EditScrips:74 -msgid "Delete selected scrips" -msgstr "删除指定的手续" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "Delete tickets" -msgstr "删除申请单" - -#: html/Search/Bulk.html:159 -msgid "Delete values" -msgstr "删除值" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "DeleteTicket" -msgstr "删除申请单" - -#: lib/RT/SavedSearch.pm:218 -msgid "Deleted search" -msgstr "已删除的搜寻" - -#: NOT FOUND IN SOURCE -msgid "Deleting this object could break referential integrity" -msgstr "删除此对象可能破坏参考完整性" - -#: lib/RT/Queue_Overlay.pm:394 -msgid "Deleting this object would break referential integrity" -msgstr "删除此对象可能破坏参考完整性" - -#: lib/RT/User_Overlay.pm:512 -msgid "Deleting this object would violate referential integrity" -msgstr "删除此对象会违反参考完整性" - -#: NOT FOUND IN SOURCE -msgid "Deleting this object would violate referential integrity." -msgstr "删除此对象会违反参考完整性" - -#: NOT FOUND IN SOURCE -msgid "Deleting this object would violate referential integrity. That's bad." -msgstr "删除此对象会违反参考完整性" - -#: html/Approvals/Elements/Approve:73 -msgid "Deny" -msgstr "驳回" - -#: NOT FOUND IN SOURCE -msgid "Department" -msgstr "部门" - -#: NOT FOUND IN SOURCE -msgid "Department ID" -msgstr "部门代码" - -#: NOT FOUND IN SOURCE -msgid "Department Name" -msgstr "部门名称" - -#: NOT FOUND IN SOURCE -msgid "Department's" -msgstr "部门之" - -#: NOT FOUND IN SOURCE -msgid "Departure Details" -msgstr "差旅明细" - -#: NOT FOUND IN SOURCE -msgid "Departure From" -msgstr "差旅起始日" - -#: NOT FOUND IN SOURCE -msgid "Departure Request" -msgstr "请假单" - -#: NOT FOUND IN SOURCE -msgid "Departure Until" -msgstr "差旅截止日" - -#: html/Elements/EditLinks:140 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:221 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 -msgid "Depended on by" -msgstr "可接续处理的申请单" - -#: NOT FOUND IN SOURCE -msgid "Dependencies: \\n" -msgstr "附属性:\\n" - -#: lib/RT/Transaction_Overlay.pm:718 -#. ($value) -msgid "Dependency by %1 added" -msgstr "已加入可接续处理的申请单 %1" - -#: lib/RT/Transaction_Overlay.pm:758 -#. ($value) -msgid "Dependency by %1 deleted" -msgstr "已移除可接续处理的申请单 %1" - -#: lib/RT/Transaction_Overlay.pm:715 -#. ($value) -msgid "Dependency on %1 added" -msgstr "已加入需先处理的申请单 %1" - -#: lib/RT/Transaction_Overlay.pm:755 -#. ($value) -msgid "Dependency on %1 deleted" -msgstr "已移除需先处理的申请单 %1" - -#: html/Elements/EditLinks:136 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:220 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 -msgid "Depends on" -msgstr "需先处理" - -#: NOT FOUND IN SOURCE -msgid "DependsOn" -msgstr "需先处理" - -#: html/Search/Elements/DisplayOptions:86 -msgid "Desc" -msgstr "递减" - -#: html/Elements/SelectSortOrder:56 -msgid "Descending" -msgstr "递减" - -#: html/SelfService/Create.html:100 html/Ticket/Create.html:152 -msgid "Describe the issue below" -msgstr "在以下字段描述主题" - -#: html/Admin/CustomFields/Modify.html:61 html/Admin/Elements/AddCustomFieldValue:57 html/Admin/Elements/EditCustomField:60 html/Admin/Elements/EditCustomFieldValues:56 html/Admin/Elements/EditScrip:55 html/Admin/Elements/ModifyTemplate:57 html/Admin/Groups/Modify.html:71 html/Admin/Queues/Modify.html:69 html/Search/Elements/EditSearches:56 html/User/Groups/Modify.html:70 -msgid "Description" -msgstr "描述" - -#: NOT FOUND IN SOURCE -msgid "Description of Responsibility" -msgstr "经办业务说明" - -#: NOT FOUND IN SOURCE -msgid "Description:" -msgstr "描述:" - -#: NOT FOUND IN SOURCE -msgid "Details" -msgstr "细节" - -#: NOT FOUND IN SOURCE -msgid "Direct" -msgstr "直接" - -#: NOT FOUND IN SOURCE -msgid "Disability" -msgstr "残障身分" - -#: NOT FOUND IN SOURCE -msgid "Disability Type" -msgstr "残障类别" - -#: NOT FOUND IN SOURCE -msgid "Disabled" -msgstr "停用" - -#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 -msgid "Display" -msgstr "显示内容" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "Display Access Control List" -msgstr "显示权限控制清单" - -#: html/Search/Elements/DisplayOptions:46 -msgid "Display Columns" -msgstr "显示字段" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "Display Scrip templates for this queue" -msgstr "显示此表单的模板" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "Display Scrips for this queue" -msgstr "显示此表单的手续" - -#: html/Ticket/Elements/ShowHistory:59 -msgid "Display mode" -msgstr "显示模式" - -#: lib/RT/Group_Overlay.pm:168 -msgid "Display saved searches for this group" -msgstr "显示此群组的预存查询" - -#: NOT FOUND IN SOURCE -msgid "Display ticket #%1" -msgstr "显示第%1号申请单" - -#: html/Elements/Footer:61 -msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" -msgstr "依 <a href=\"http://www.gnu.org/copyleft/gpl.html\">GNU 通用公共授权</a> 第二版散布。" - -#: lib/RT/System.pm:75 -msgid "Do anything and everything" -msgstr "允许一切操作" - -#: html/Elements/Refresh:51 -msgid "Don't refresh this page." -msgstr "不更新此页面。" - -#: NOT FOUND IN SOURCE -msgid "Don't show search results" -msgstr "不显示查询结果" - -#: NOT FOUND IN SOURCE -msgid "Done" -msgstr "完成" - -#: NOT FOUND IN SOURCE -msgid "Down" -msgstr "下一页" - -#: html/Ticket/Elements/ShowTransactionAttachments:82 -msgid "Download" -msgstr "下载" - -#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 -msgid "Download as a tab-delimited file" -msgstr "下载以 Tab 分隔的档案" - -#: NOT FOUND IN SOURCE -msgid "Dr." -msgstr "博士" - -#: html/Elements/SelectDateType:53 html/Ticket/Create.html:209 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/Reminders:133 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1173 -msgid "Due" -msgstr "到期日" - -#: NOT FOUND IN SOURCE -msgid "Due Date" -msgstr "截止日" - -#: NOT FOUND IN SOURCE -msgid "Due date '%1' could not be parsed" -msgstr "无法解读日期 '%1'" - -#: NOT FOUND IN SOURCE -msgid "ERROR: Couldn't load ticket '%1': %2.\\n" -msgstr "无法加载申请单 '%1':%2.\\n" - -#: html/Elements/Quicksearch:48 html/Elements/ShowSearch:49 html/index.html:107 -msgid "Edit" -msgstr "编辑" - -#: NOT FOUND IN SOURCE -msgid "Edit Conditions" -msgstr "编辑前置条件" - -#: html/Search/Bulk.html:149 -msgid "Edit Custom Fields" -msgstr "编辑自订字段" - -#: html/Admin/Elements/ObjectCustomFields:92 html/Admin/Queues/CustomFields.html:64 html/Admin/Users/CustomFields.html:64 -#. ($Object->Name) -msgid "Edit Custom Fields for %1" -msgstr "编辑 %1 的自订字段" - -#: html/Admin/Global/CustomFields/Groups.html:54 -msgid "Edit Custom Fields for all groups" -msgstr "编辑适用于所有群组的自订字段" - -#: html/Admin/Global/CustomFields/Users.html:54 -msgid "Edit Custom Fields for all users" -msgstr "编辑适用于所有使用者的自订字段" - -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for queue %1" -msgstr "编辑表单 %1 的自订字段" - -#: html/Admin/Global/CustomFields/Queue-Tickets.html:54 html/Admin/Global/CustomFields/Queue-Transactions.html:54 -msgid "Edit Custom Fields for tickets in all queues" -msgstr "编辑适用于所有表单内申请单的自订字段" - -#: html/Search/Bulk.html:188 html/Ticket/ModifyLinks.html:57 -msgid "Edit Links" -msgstr "编辑申请单关系" - -#: html/Search/Edit.html:68 -msgid "Edit Query" -msgstr "编辑查询" - -#: html/Ticket/Elements/Tabs:214 -msgid "Edit Search" -msgstr "编辑查询" - -#: NOT FOUND IN SOURCE -msgid "Edit Subgroups" -msgstr "新增/维护子群组" - -#: html/Admin/Queues/Templates.html:63 -#. ($QueueObj->Name) -msgid "Edit Templates for queue %1" -msgstr "编辑表单 %1 的模板" - -#: NOT FOUND IN SOURCE -msgid "Edit Workflows for queue %1" -msgstr "编辑表单 %1 的流程" - -#: NOT FOUND IN SOURCE -msgid "Edit keywords" -msgstr "编辑关键词" - -#: lib/RT/Group_Overlay.pm:167 -msgid "Edit saved searches for this group" -msgstr "编辑此群组的预存查询" - -#: NOT FOUND IN SOURCE -msgid "Edit scrips" -msgstr "编辑手续" - -#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 -msgid "Edit system templates" -msgstr "编辑全域模板" - -#: NOT FOUND IN SOURCE -msgid "Edit system workflows" -msgstr "编辑全域流程" - -#: NOT FOUND IN SOURCE -msgid "Edit templates for %1" -msgstr "编辑 %1 的模板" - -#: NOT FOUND IN SOURCE -msgid "Edit workflows for %1" -msgstr "编辑 %1 的流程" - -#: lib/RT/Group_Overlay.pm:167 -msgid "EditSavedSearches" -msgstr "编辑预存查询" - -#: html/Admin/Queues/Modify.html:140 -#. ($QueueObj->Name) -msgid "Editing Configuration for queue %1" -msgstr "编辑表单 %1 的设定" - -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for user %1" -msgstr "编辑使用者 %1 的设定" - -#: html/Admin/CustomFields/Modify.html:167 html/Admin/Elements/EditCustomField:120 -#. ($CustomFieldObj->Name()) -msgid "Editing CustomField %1" -msgstr "编辑自订字段 %1" - -#: html/Admin/Groups/Members.html:53 -#. ($Group->Name) -msgid "Editing membership for group %1" -msgstr "编辑群组 %1 的成员信息" - -#: html/User/Groups/Members.html:150 -#. ($Group->Name) -msgid "Editing membership for personal group %1" -msgstr "编辑代理人群组 %1 的成员信息" - -#: NOT FOUND IN SOURCE -msgid "Editing template %1" -msgstr "编辑模板 %1" - -#: NOT FOUND IN SOURCE -msgid "Editing workflow %1" -msgstr "编辑流程 %1" - -#: NOT FOUND IN SOURCE -msgid "Education" -msgstr "最高学历" - -#: NOT FOUND IN SOURCE -msgid "EffectiveId" -msgstr "有效编号" - -#: lib/RT/Record.pm:1295 lib/RT/Record.pm:1372 lib/RT/Ticket_Overlay.pm:2518 lib/RT/Ticket_Overlay.pm:2608 -msgid "Either base or target must be specified" -msgstr "需要指定起始申请单或目的申请单" - -#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 -msgid "Email" -msgstr "电子邮件信箱" - -#: NOT FOUND IN SOURCE -msgid "Email Address" -msgstr "电子邮件信箱" - -#: lib/RT/User_Overlay.pm:235 -msgid "Email address in use" -msgstr "此电子邮件信箱已被使用" - -#: NOT FOUND IN SOURCE -msgid "EmailAddress" -msgstr "电子邮件信箱地址" - -#: NOT FOUND IN SOURCE -msgid "EmailEncoding" -msgstr "电子邮件文字编码方式" - -#: NOT FOUND IN SOURCE -msgid "Embark Date" -msgstr "外籍员工入境日" - -#: NOT FOUND IN SOURCE -msgid "Embarked Date" -msgstr "抵达日期" - -#: NOT FOUND IN SOURCE -msgid "Embarked Location" -msgstr "抵达地点" - -#: NOT FOUND IN SOURCE -msgid "Enable Delegates" -msgstr "代理激活" - -#: html/Admin/CustomFields/Modify.html:98 html/Admin/Elements/EditCustomField:72 -msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "启用(取消勾选将停用此自订字段)" - -#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 -msgid "Enabled (Unchecking this box disables this group)" -msgstr "启用(取消勾选将停用此群组)" - -#: html/Admin/Queues/Modify.html:105 -msgid "Enabled (Unchecking this box disables this queue)" -msgstr "启用(取消勾选将停用此表单)" - -#: NOT FOUND IN SOURCE -msgid "Enabled Custom Fields" -msgstr "已启用的自订字段" - -#: NOT FOUND IN SOURCE -msgid "Enabled Date" -msgstr "启用日期" - -#: NOT FOUND IN SOURCE -msgid "Enabled Date:" -msgstr "激活日期:" - -#: html/Admin/Queues/index.html:78 -msgid "Enabled Queues" -msgstr "已启用的表单" - -#: NOT FOUND IN SOURCE -msgid "Enabled Status" -msgstr "启用状态" - -#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:350 html/User/Groups/Modify.html:138 -#. (loc_fuzzy($msg)) -msgid "Enabled status %1" -msgstr "启用状态 %1" - -#: html/Admin/CustomFields/Modify.html:185 html/Admin/Queues/Modify.html:162 -#. (loc_fuzzy($msg)) -msgid "Enabled status: %1" -msgstr "启用状态: %1" - -#: NOT FOUND IN SOURCE -msgid "End of Trial" -msgstr "试用期满日" - -#: NOT FOUND IN SOURCE -msgid "English Name" -msgstr "英文姓名" - -#: lib/RT/CustomField_Overlay.pm:64 -msgid "Enter multiple values" -msgstr "键入多重项目" - -#: html/Elements/EditLinks:126 -msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." -msgstr "键入欲将对象连结至的对象或 URI。项目之间请以空白隔开。" - -#: NOT FOUND IN SOURCE -msgid "Enter one or more conditions below to search for users" -msgstr "键入下列单一或复式条件,查询用户数据" - -#: lib/RT/CustomField_Overlay.pm:65 -msgid "Enter one value" -msgstr "键入单一项目" - -#: html/Elements/EditLinks:123 -msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." -msgstr "键入欲将表单连结至的对象或 URI。项目之间请以空白隔开。" - -#: html/Elements/EditLinks:119 html/Search/Bulk.html:189 -msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "键入申请单可链接到的申请单编号或网址。项目之间请以空白隔开。" - -#: lib/RT/CustomField_Overlay.pm:66 -msgid "Enter up to %1 values" -msgstr "键入最多 %1 个项目" - -#: NOT FOUND IN SOURCE -msgid "EntryBoolean" -msgstr "是非填表" - -#: NOT FOUND IN SOURCE -msgid "EntryDate" -msgstr "日期填表" - -#: NOT FOUND IN SOURCE -msgid "EntryExternal" -msgstr "系统填表" - -#: NOT FOUND IN SOURCE -msgid "EntryFreeform" -msgstr "输入填表" - -#: NOT FOUND IN SOURCE -msgid "EntryMultiple" -msgstr "多选填表" - -#: NOT FOUND IN SOURCE -msgid "EntryNumber" -msgstr "数值填表" - -#: NOT FOUND IN SOURCE -msgid "EntrySelect" -msgstr "单选填表" - -#: NOT FOUND IN SOURCE -msgid "EntryTime" -msgstr "时间填表" - -#: html/Elements/Login:76 html/SelfService/Error.html:46 html/SelfService/Error.html:47 -msgid "Error" -msgstr "错误" - -#: NOT FOUND IN SOURCE -msgid "Error adding watcher" -msgstr "新增视察员失败" - -#: lib/RT/Queue_Overlay.pm:672 -msgid "Error in parameters to Queue->AddWatcher" -msgstr "表单->新增视察员的参数有误" - -#: lib/RT/Queue_Overlay.pm:833 -msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "表单->删除视察员的参数有误" - -#: lib/RT/Ticket_Overlay.pm:1372 -msgid "Error in parameters to Ticket->AddWatcher" -msgstr "申请单->新增视察员的参数有误" - -#: lib/RT/Ticket_Overlay.pm:1538 -msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "申请单->删除视察员的参数有误" - -#: bin/rt-crontool:285 -msgid "Escalate tickets" -msgstr "调整申请单优先等级" - -#: NOT FOUND IN SOURCE -msgid "Estimate" -msgstr "预计" - -#: html/Ticket/Elements/ShowBasics:57 -msgid "Estimated" -msgstr "预计" - -#: etc/initialdata:20 -msgid "Everyone" -msgstr "所有人" - -#: bin/rt-crontool:271 -msgid "Example:" -msgstr "范例:" - -#: NOT FOUND IN SOURCE -msgid "Existing user renamed from %1 to %2" -msgstr "现有使用者 %1 已改名为 %2" - -#: NOT FOUND IN SOURCE -msgid "Export" -msgstr "汇出" - -#: NOT FOUND IN SOURCE -msgid "ExternalAuthId" -msgstr "外部认证帐号" - -#: NOT FOUND IN SOURCE -msgid "ExternalContactInfoId" -msgstr "外部联络方式帐号" - -#: NOT FOUND IN SOURCE -msgid "ExternalDatabaseDSN" -msgstr "外部数据库连结字符串" - -#: NOT FOUND IN SOURCE -msgid "ExternalDatabasePass" -msgstr "外部数据库口令" - -#: NOT FOUND IN SOURCE -msgid "ExternalDatabaseUser" -msgstr "外部数据库用户" - -#: NOT FOUND IN SOURCE -msgid "ExternalURL" -msgstr "外部接口网址" - -#: html/Admin/Users/Modify.html:99 -msgid "Extra info" -msgstr "备注" - -#: lib/RT/SavedSearch.pm:177 -msgid "Failed to create search attribute" -msgstr "查询属性建立失败" - -#: lib/RT/User_Overlay.pm:376 -msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "找不到‘内部成员’虚拟群组的使用者。" - -#: lib/RT/User_Overlay.pm:383 -msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "找不到‘非内部成员’虚拟群组的使用者。" - -#: bin/rt-crontool:206 -#. ($modname, $@) -msgid "Failed to load module %1. (%2)" -msgstr "无法加载模块 %1。(%2)" - -#: lib/RT/SavedSearch.pm:152 -#. ($privacy) -msgid "Failed to load object for %1" -msgstr "无法为 %1 加载对象。" - -#: NOT FOUND IN SOURCE -msgid "Feb" -msgstr "二月" - -#: lib/RT/Date.pm:442 -msgid "Feb." -msgstr "02" - -#: NOT FOUND IN SOURCE -msgid "February" -msgstr "二月" - -#: NOT FOUND IN SOURCE -msgid "Female" -msgstr "女" - -#: NOT FOUND IN SOURCE -msgid "Field Content:" -msgstr "字段内容:" - -#: NOT FOUND IN SOURCE -msgid "Field Description" -msgstr "字段描述" - -#: NOT FOUND IN SOURCE -msgid "Field Name" -msgstr "字段名称" - -#: NOT FOUND IN SOURCE -msgid "Field Type" -msgstr "字段类别" - -#: html/Elements/SelectAttachmentField:50 -msgid "Filename" -msgstr "档名" - -#: lib/RT/CustomField_Overlay.pm:69 -msgid "Fill in multiple text areas" -msgstr "填入多个文字框" - -#: lib/RT/CustomField_Overlay.pm:74 -msgid "Fill in multiple wikitext areas" -msgstr "填入多个 Wiki 文字框" - -#: lib/RT/CustomField_Overlay.pm:70 -msgid "Fill in one text area" -msgstr "填入一个文字框" - -#: lib/RT/CustomField_Overlay.pm:75 -msgid "Fill in one wikitext area" -msgstr "填入一个 Wiki 文字框" - -#: html/Admin/CustomFields/Modify.html:107 html/Admin/CustomFields/Modify.html:118 -msgid "Fill in this field with a URL." -msgstr "填入一个网址" - -#: lib/RT/CustomField_Overlay.pm:71 -msgid "Fill in up to %1 text areas" -msgstr "填入最多 %1 个文字框" - -#: lib/RT/CustomField_Overlay.pm:76 -msgid "Fill in up to %1 wikitext areas" -msgstr "填入最多 %1 个 Wiki 文字框" - -#: NOT FOUND IN SOURCE -msgid "Filter" -msgstr "筛选" - -#: NOT FOUND IN SOURCE -msgid "Filter people" -msgstr "对象筛选" - -#: NOT FOUND IN SOURCE -msgid "Filtered list:" -msgstr "筛选列表:" - -#: NOT FOUND IN SOURCE -msgid "Fin" -msgstr "最终" - -#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:182 html/Ticket/Elements/EditBasics:97 lib/RT/Tickets_Overlay.pm:1841 -msgid "Final Priority" -msgstr "最终顺位" - -#: lib/RT/Ticket_Overlay.pm:1164 -msgid "FinalPriority" -msgstr "最终顺位" - -#: NOT FOUND IN SOURCE -msgid "Financial Department:" -msgstr "财务部:" - -#: NOT FOUND IN SOURCE -msgid "Find group whose" -msgstr "寻找群组的" - -#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 -msgid "Find groups whose" -msgstr "寻找群组的" - -#: NOT FOUND IN SOURCE -msgid "Find new/open tickets" -msgstr "寻找/开启申请单" - -#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 -msgid "Find people whose" -msgstr "寻找人员的" - -#: NOT FOUND IN SOURCE -msgid "Find queues whose" -msgstr "寻找表单的" - -#: html/Search/Results.html:147 -msgid "Find tickets" -msgstr "寻找申请单" - -#: NOT FOUND IN SOURCE -msgid "Finish Approval" -msgstr "签核完毕" - -#: html/Ticket/Elements/Tabs:81 -msgid "First" -msgstr "第一项" - -#: NOT FOUND IN SOURCE -msgid "First page" -msgstr "第一页" - -#: NOT FOUND IN SOURCE -msgid "First-" -msgstr "一" - -#: NOT FOUND IN SOURCE -msgid "First-level Admins" -msgstr "一阶主管" - -#: NOT FOUND IN SOURCE -msgid "First-level Users" -msgstr "一阶主管员工" - -#: NOT FOUND IN SOURCE -msgid "Fixed shift" -msgstr "固定班" - -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:766 -msgid "Foo Bar Baz" -msgstr "甲 乙 丙" - -#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 -msgid "Foo!" -msgstr "甲!" - -#: html/Search/Bulk.html:83 -msgid "Force change" -msgstr "强制更换" - -#: NOT FOUND IN SOURCE -msgid "Form Processing" -msgstr "电子表单作业区" - -#: html/Search/Elements/EditFormat:52 -msgid "Format" -msgstr "格式" - -#: html/Search/Results.html:145 -#. ($ticketcount) -msgid "Found %quant(%1,ticket)" -msgstr "找到 %1 张申请单" - -#: lib/RT/Record.pm:956 -msgid "Found Object" -msgstr "已找到对象" - -#: NOT FOUND IN SOURCE -msgid "Fourth-" -msgstr "四" - -#: NOT FOUND IN SOURCE -msgid "Freeform" -msgstr "输入" - -#: NOT FOUND IN SOURCE -msgid "FreeformContactInfo" -msgstr "联络方式" - -#: NOT FOUND IN SOURCE -msgid "FreeformDate" -msgstr "日期输入" - -#: NOT FOUND IN SOURCE -msgid "FreeformExternal" -msgstr "系统字段" - -#: NOT FOUND IN SOURCE -msgid "FreeformMultiple" -msgstr "多重输入" - -#: NOT FOUND IN SOURCE -msgid "FreeformNumber" -msgstr "数值输入" - -#: NOT FOUND IN SOURCE -msgid "FreeformPassword" -msgstr "口令输入" - -#: NOT FOUND IN SOURCE -msgid "FreeformSingle" -msgstr "单一输入" - -#: NOT FOUND IN SOURCE -msgid "FreeformTime" -msgstr "时间输入" - -#: NOT FOUND IN SOURCE -msgid "Fri" -msgstr "星期五" - -#: lib/RT/Date.pm:421 -msgid "Fri." -msgstr "星期五" - -#: html/Ticket/Elements/ShowHistory:66 html/Ticket/Elements/ShowHistory:72 -msgid "Full headers" -msgstr "完整标头档" - -#: NOT FOUND IN SOURCE -msgid "Gecos" -msgstr "登入帐号" - -#: NOT FOUND IN SOURCE -msgid "Gender" -msgstr "性别" - -#: html/Tools/Offline.html:85 -msgid "Get template from file" -msgstr "取出档案里的模板" - -#: NOT FOUND IN SOURCE -msgid "Getting the current user from a pgp sig\\n" -msgstr "取得目前使用者的 pgp 签章\\n" - -#: lib/RT/Transaction_Overlay.pm:684 -#. ($New->Name) -msgid "Given to %1" -msgstr "交予 %1" - -#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 -msgid "Global" -msgstr "全域设定" - -#: NOT FOUND IN SOURCE -msgid "Global Approval" -msgstr "全域签核" - -#: html/Admin/Elements/EditCustomFields:55 -msgid "Global Custom Fields" -msgstr "全域自订字段" - -#: NOT FOUND IN SOURCE -msgid "Global Keyword Selections" -msgstr "全域关键词选取" - -#: NOT FOUND IN SOURCE -msgid "Global Rights:" -msgstr "拥有全域权限列表:" - -#: NOT FOUND IN SOURCE -msgid "Global Scrips" -msgstr "全域手续" - -#: NOT FOUND IN SOURCE -msgid "Global Setup" -msgstr "全域设定" - -#: html/Admin/Global/CustomFields/index.html:59 -msgid "Global custom field configuration" -msgstr "全域自订字段设定" - -#: html/Admin/Global/MyRT.html:48 -#. ($pane) -msgid "Global portlet %1 saved." -msgstr "成功储存全域入口组件 %1。" - -#: html/Admin/Elements/SelectTemplate:59 -#. (loc($Template->Name)) -msgid "Global template: %1" -msgstr "全域模板:%1" - -#: NOT FOUND IN SOURCE -msgid "GlobalApproval" -msgstr "全域签核" - -#: html/Admin/CustomFields/index.html:80 html/Search/Results.html:90 html/Tools/Offline.html:89 -msgid "Go" -msgstr "执行" - -#: html/Admin/Groups/index.html:67 html/Admin/Groups/index.html:73 html/Admin/Queues/People.html:80 html/Admin/Queues/People.html:84 html/Admin/Queues/index.html:66 html/Admin/Users/index.html:73 html/Elements/RefreshHomepage:48 html/Search/Results.html:74 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 -msgid "Go!" -msgstr "执行" - -#: NOT FOUND IN SOURCE -msgid "Good pgp sig from %1\\n" -msgstr "%1 的 pgp 签章是正确的\\n" - -#: NOT FOUND IN SOURCE -msgid "Goto page" -msgstr "到页面" - -#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 -msgid "Goto ticket" -msgstr "跳到申请单" - -#: NOT FOUND IN SOURCE -msgid "Grand" -msgstr "上" - -#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 -msgid "Group" -msgstr "群组" - -#: NOT FOUND IN SOURCE -msgid "Group %1 %2: %3" -msgstr "群组 %1 %2:%3" - -#: NOT FOUND IN SOURCE -msgid "Group Admin" -msgstr "群组管理员" - -#: NOT FOUND IN SOURCE -msgid "Group Description" -msgstr "群组描述" - -#: NOT FOUND IN SOURCE -msgid "Group Management" -msgstr "群组管理" - -#: NOT FOUND IN SOURCE -msgid "Group Members" -msgstr "群组成员" - -#: NOT FOUND IN SOURCE -msgid "Group Name" -msgstr "群组名称" - -#: NOT FOUND IN SOURCE -msgid "Group Name:" -msgstr "群组名称:" - -#: html/Admin/Elements/CustomFieldTabs:68 html/Admin/Elements/GroupTabs:66 html/Admin/Elements/QueueTabs:82 html/Admin/Elements/SystemTabs:65 html/Admin/Global/index.html:76 -msgid "Group Rights" -msgstr "群组权限" - -#: NOT FOUND IN SOURCE -msgid "Group Rights:" -msgstr "拥有群组权限列表:" - -#: NOT FOUND IN SOURCE -msgid "Group Setup" -msgstr "群组设定" - -#: NOT FOUND IN SOURCE -msgid "Group Status" -msgstr "群组状态" - -#: lib/RT/Group_Overlay.pm:983 -msgid "Group already has member" -msgstr "群组内已有此成员" - -#: NOT FOUND IN SOURCE -msgid "Group could not be created." -msgstr "无法新增群组" - -#: html/Admin/Groups/Modify.html:109 -#. ($create_msg) -msgid "Group could not be created: %1" -msgstr "无法新增群组:%1" - -#: lib/RT/Group_Overlay.pm:521 -msgid "Group created" -msgstr "群组新增完毕" - -#: NOT FOUND IN SOURCE -msgid "Group created: %1" -msgstr "群组 %1 新增完毕" - -#: lib/RT/Group_Overlay.pm:1155 -msgid "Group has no such member" -msgstr "群组没有这个成员" - -#: lib/RT/Group_Overlay.pm:963 lib/RT/Queue_Overlay.pm:748 lib/RT/Queue_Overlay.pm:808 lib/RT/Ticket_Overlay.pm:1430 lib/RT/Ticket_Overlay.pm:1510 -msgid "Group not found" -msgstr "找不到群组" - -#: NOT FOUND IN SOURCE -msgid "Group not found.\\n" -msgstr "找不到群组。\\n" - -#: NOT FOUND IN SOURCE -msgid "Group not specified.\\n" -msgstr "未指定群组。\\n" - -#: NOT FOUND IN SOURCE -msgid "Group redescribed from %1 to %2" -msgstr "群组描述 %1 已改为 %2" - -#: NOT FOUND IN SOURCE -msgid "Group renamed from %1 to %2" -msgstr "群组 %1 已改名为 %2" - -#: NOT FOUND IN SOURCE -msgid "Group with Queue Rights" -msgstr "拥有表单权限群组" - -#: NOT FOUND IN SOURCE -msgid "Group's" -msgstr "群组之" - -#: NOT FOUND IN SOURCE -msgid "Group:" -msgstr "群组:" - -#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:57 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:86 html/Admin/Queues/People.html:104 html/Admin/Users/Memberships.html:53 html/Admin/index.html:67 html/User/Groups/Members.html:88 lib/RT/CustomField_Overlay.pm:1210 -msgid "Groups" -msgstr "群组" - -#: lib/RT/Group_Overlay.pm:989 -msgid "Groups can't be members of their members" -msgstr "不能将群组设为群组内成员" - -#: html/Admin/Groups/index.html:86 -msgid "Groups matching search criteria" -msgstr "符合查询条件的群组" - -#: html/Ticket/Elements/ShowRequestor:77 -msgid "Groups this user belongs to" -msgstr "使用者所属的群组" - -#: NOT FOUND IN SOURCE -msgid "Groups with Global Rights" -msgstr "拥有全域权限群组" - -#: NOT FOUND IN SOURCE -msgid "HRMSDefined" -msgstr "组织架构" - -#: NOT FOUND IN SOURCE -msgid "HTML Attributes" -msgstr "HTML 属性" - -#: NOT FOUND IN SOURCE -msgid "Health Insurance" -msgstr "健保补助身份" - -#: lib/RT/Interface/CLI.pm:94 lib/RT/Interface/CLI.pm:94 -msgid "Hello!" -msgstr "嗨!" - -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 -#. ($name) -msgid "Hello, %1" -msgstr "嗨,%1" - -#: NOT FOUND IN SOURCE -msgid "Help" -msgstr "说明" - -#: NOT FOUND IN SOURCE -msgid "Help Desks" -msgstr "各项业务窗口" - -#: NOT FOUND IN SOURCE -msgid "Hidden" -msgstr "隐藏" - -#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:53 html/Ticket/Elements/Tabs:111 -msgid "History" -msgstr "纪录" - -#: html/Admin/Groups/History.html:62 -#. ($GroupObj->Name) -msgid "History of the group %1" -msgstr "群组 %1 的纪录" - -#: html/Admin/Users/History.html:62 -#. ($UserObj->Name) -msgid "History of the user %1" -msgstr "使用者 %1 的纪录" - -#: NOT FOUND IN SOURCE -msgid "HomePhone" -msgstr "住处电话" - -#: html/Elements/Tabs:65 -msgid "Homepage" -msgstr "主页" - -#: NOT FOUND IN SOURCE -msgid "Hotel Expense" -msgstr "住宿费" - -#: html/Elements/SelectTimeUnits:48 -msgid "Hours" -msgstr "小时" - -#: lib/RT/Base.pm:119 -#. (6) -msgid "I have %quant(%1,concrete mixer)." -msgstr "我有 %quant(%1,份固体搅拌器)。" - -#: html/Search/Build.html:460 lib/RT/Report/Tickets.pm:415 -msgid "I'm lost" -msgstr "我昏了" - -#: NOT FOUND IN SOURCE -msgid "ID Number" -msgstr "身分证号" - -#: NOT FOUND IN SOURCE -msgid "ID Type" -msgstr "身分类别" - -#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1766 -msgid "Id" -msgstr "编号" - -#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 -msgid "Identity" -msgstr "身份" - -#: etc/initialdata:429 -msgid "If an approval is rejected, reject the original and delete pending approvals" -msgstr "若签核单遭到驳回,则连带驳回原申请单,并删除其它相关的待签核事项" - -#: html/Tools/Offline.html:74 -msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "若没有指定申请者,则以此使用者作为申请者" - -#: html/Tools/Offline.html:65 -msgid "If no queue is specified, create tickets in this queue." -msgstr "申请单若没有指定表单,则将它新增在此表单内" - -#: bin/rt-crontool:267 -msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." -msgstr "如果此工具程序为 setgid,恶意的本地端用户即能由此取得 RT 的管理员权限。" - -#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:60 -msgid "If you've updated anything above, be sure to" -msgstr "若您已更新以上数据,请记得按一下" - -#: lib/RT/Record.pm:947 -msgid "Illegal value for %1" -msgstr "%1 的值错误" - -#: NOT FOUND IN SOURCE -msgid "Image" -msgstr "图片" - -#: lib/RT/Record.pm:950 -msgid "Immutable field" -msgstr "此字段值不可更动" - -#: NOT FOUND IN SOURCE -msgid "Import" -msgstr "汇入" - -#: NOT FOUND IN SOURCE -msgid "Include disabled custom fields in listing." -msgstr "列出停用的自订字段" - -#: html/Admin/Groups/index.html:65 -msgid "Include disabled groups in listing." -msgstr "列出停用的群组" - -#: html/Admin/Queues/index.html:65 -msgid "Include disabled queues in listing." -msgstr "列出停用的表单" - -#: html/Admin/Users/index.html:71 -msgid "Include disabled users in search." -msgstr "列出停用的使用者" - -#: html/Admin/CustomFields/Modify.html:113 -msgid "Include page" -msgstr "引入页面" - -#: html/Search/Build.html:486 lib/RT/Report/Tickets.pm:441 -msgid "Incomplete Query" -msgstr "不完整的查询" - -#: html/Search/Build.html:483 lib/RT/Report/Tickets.pm:438 -msgid "Incomplete query" -msgstr "不完整的查询" - -#: NOT FOUND IN SOURCE -msgid "Indirect Employee" -msgstr "直接/间接员工" - -#: html/Search/Elements/PickBasics:148 lib/RT/Tickets_Overlay.pm:1816 -msgid "Initial Priority" -msgstr "初始优先顺位" - -#: lib/RT/Ticket_Overlay.pm:1163 lib/RT/Ticket_Overlay.pm:1165 -msgid "InitialPriority" -msgstr "初始优先顺位" - -#: lib/RT/ScripAction_Overlay.pm:133 -msgid "Input error" -msgstr "输入错误" - -#: html/Elements/ValidateCustomFields:68 lib/RT/CustomField_Overlay.pm:1021 lib/RT/CustomField_Overlay.pm:1162 -#. ($self->FriendlyPattern) -#. ($CF->FriendlyPattern) -msgid "Input must match %1" -msgstr "输入必须符合 %1" - -#: NOT FOUND IN SOURCE -msgid "Interest noted" -msgstr "登记成功" - -#: lib/RT/Ticket_Overlay.pm:3503 -msgid "Internal Error" -msgstr "内部错误" - -#: lib/RT/Record.pm:308 -#. ($id->{error_message}) -msgid "Internal Error: %1" -msgstr "内部错误:%1" - -#: lib/RT/Group_Overlay.pm:668 -msgid "Invalid Group Type" -msgstr "错误的群组类别" - -#: lib/RT/Principal_Overlay.pm:161 -msgid "Invalid Right" -msgstr "错误的权限" - -#: NOT FOUND IN SOURCE -msgid "Invalid Type" -msgstr "错误的类型" - -#: lib/RT/Record.pm:952 -msgid "Invalid data" -msgstr "错误的数据" - -#: NOT FOUND IN SOURCE -msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "错误的承办人。改为预设承办人‘nobody’。" - -#: lib/RT/CustomField_Overlay.pm:207 lib/RT/CustomField_Overlay.pm:678 -#. ($msg) -msgid "Invalid pattern: %1" -msgstr "不合理的样式:%1" - -#: lib/RT/Scrip_Overlay.pm:157 lib/RT/Template_Overlay.pm:244 -msgid "Invalid queue" -msgstr "错误的表单" - -#: lib/RT/ACE_Overlay.pm:264 lib/RT/ACE_Overlay.pm:273 lib/RT/ACE_Overlay.pm:279 lib/RT/ACE_Overlay.pm:290 -msgid "Invalid right" -msgstr "错误的权限" - -#: lib/RT/Record.pm:283 -#. ($key) -msgid "Invalid value for %1" -msgstr "%1 的值错误" - -#: lib/RT/Record.pm:1610 -msgid "Invalid value for custom field" -msgstr "错误的自订字段值" - -#: lib/RT/Ticket_Overlay.pm:424 -msgid "Invalid value for status" -msgstr "错误的状态值" - -#: NOT FOUND IN SOURCE -msgid "IssueStatement" -msgstr "送出陈述" - -#: bin/rt-crontool:268 -msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." -msgstr "请绝对不要让未具权限的使用者执行此工具程序。" - -#: bin/rt-crontool:269 -msgid "It is suggested that you create a non-privileged unix user with the correct group membership and RT access to run this tool." -msgstr "建议您新增一个隶属于正确群组的低权限系统使用者,并以该身份执行此工具程序。" - -#: bin/rt-crontool:231 -msgid "It takes several arguments:" -msgstr "它接受下列参数:" - -#: html/Search/Elements/EditFormat:85 -msgid "Italic" -msgstr "斜体" - -#: NOT FOUND IN SOURCE -msgid "Item Name" -msgstr "品名" - -#: NOT FOUND IN SOURCE -msgid "Items" -msgstr "笔" - -#: NOT FOUND IN SOURCE -msgid "Items pending my approval" -msgstr "待签核项目" - -#: NOT FOUND IN SOURCE -msgid "Jan" -msgstr "一月" - -#: lib/RT/Date.pm:441 -msgid "Jan." -msgstr "01" - -#: NOT FOUND IN SOURCE -msgid "January" -msgstr "一月" - -#: NOT FOUND IN SOURCE -msgid "Job" -msgstr "职称" - -#: lib/RT/Group_Overlay.pm:166 -msgid "Join or leave this group" -msgstr "加入或离开此群组" - -#: NOT FOUND IN SOURCE -msgid "Jul" -msgstr "七月" - -#: lib/RT/Date.pm:447 -msgid "Jul." -msgstr "07" - -#: NOT FOUND IN SOURCE -msgid "July" -msgstr "七月" - -#: html/Ticket/Elements/Tabs:125 -msgid "Jumbo" -msgstr "全部信息" - -#: NOT FOUND IN SOURCE -msgid "Jun" -msgstr "六月" - -#: lib/RT/Date.pm:446 -msgid "Jun." -msgstr "06" - -#: NOT FOUND IN SOURCE -msgid "June" -msgstr "六月" - -#: NOT FOUND IN SOURCE -msgid "Keyword" -msgstr "关键词" - -#: NOT FOUND IN SOURCE -msgid "LabelAttachments" -msgstr "附件卷标" - -#: NOT FOUND IN SOURCE -msgid "LabelContent" -msgstr "内容卷标" - -#: NOT FOUND IN SOURCE -msgid "LabelSubject" -msgstr "主题卷标" - -#: NOT FOUND IN SOURCE -msgid "LabelURL" -msgstr "链接卷标" - -#: NOT FOUND IN SOURCE -msgid "Lang" -msgstr "使用语言" - -#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 -msgid "Language" -msgstr "语言" - -#: html/Search/Elements/EditFormat:79 -msgid "Large" -msgstr "大" - -#: html/Ticket/Elements/Tabs:96 -msgid "Last" -msgstr "上次更新" - -#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 -msgid "Last Contact" -msgstr "上次联络" - -#: html/Elements/SelectDateType:50 -msgid "Last Contacted" -msgstr "上次联络日期" - -#: NOT FOUND IN SOURCE -msgid "Last Notified" -msgstr "上次通知" - -#: html/Elements/SelectDateType:51 -msgid "Last Updated" -msgstr "上次更新" - -#: NOT FOUND IN SOURCE -msgid "LastUpdated" -msgstr "上次更新" - -#: html/Search/Elements/PickBasics:103 -msgid "LastUpdatedBy" -msgstr "上次更新者" - -#: html/Ticket/Elements/ShowBasics:68 -msgid "Left" -msgstr "剩馀时间" - -#: html/Admin/Users/Modify.html:109 -msgid "Let this user access RT" -msgstr "允许这名使用者登入" - -#: html/Admin/Users/Modify.html:113 -msgid "Let this user be granted rights" -msgstr "内部成员(具有个人权限)" - -#: NOT FOUND IN SOURCE -msgid "Limiting owner to %1 %2" -msgstr "限制承办人为 %1 到%2" - -#: NOT FOUND IN SOURCE -msgid "Limiting queue to %1 %2" -msgstr "限制表单为 %1 到 %2" - -#: html/Search/Elements/EditFormat:68 -msgid "Link" -msgstr "链接" - -#: NOT FOUND IN SOURCE -msgid "Link a Queue" -msgstr "申请表单连结" - -#: lib/RT/Record.pm:1306 -msgid "Link already exists" -msgstr "此链接已存在" - -#: lib/RT/Record.pm:1320 -msgid "Link could not be created" -msgstr "无法新增链接" - -#: lib/RT/Record.pm:1326 -#. ($TransString) -msgid "Link created (%1)" -msgstr "链接(%1)新增完毕" - -#: lib/RT/Record.pm:1387 -#. ($TransString) -msgid "Link deleted (%1)" -msgstr "链接(%1)删除完毕" - -#: lib/RT/Record.pm:1393 -msgid "Link not found" -msgstr "找不到链接" - -#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 -#. ($Ticket->Id) -msgid "Link ticket #%1" -msgstr "链接申请单 #%1" - -#: NOT FOUND IN SOURCE -msgid "Link ticket %1" -msgstr "链接申请单 %1" - -#: html/Admin/CustomFields/Modify.html:102 -msgid "Link values to" -msgstr "将值连结至" - -#: lib/RT/Ticket_Overlay.pm:700 -msgid "Linking. Permission denied" -msgstr "连结中。权限不足" - -#: html/Ticket/Create.html:216 html/Ticket/Elements/ShowSummary:89 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 -msgid "Links" -msgstr "链接" - -#: NOT FOUND IN SOURCE -msgid "List All Users" -msgstr "列出所有用户数据" - -#: html/Search/Elements/EditSearches:75 -msgid "Load" -msgstr "加载" - -#: html/Search/Elements/EditSearches:73 -msgid "Load saved search:" -msgstr "加载预存查询:" - -#: lib/RT/System.pm:86 -msgid "LoadSavedSearch" -msgstr "加载预存查询" - -#: html/Admin/Tools/Configuration.html:64 -msgid "Loaded perl modules" -msgstr "已加载的 Perl 模块" - -#: lib/RT/SavedSearch.pm:111 -#. ($self->Name) -msgid "Loaded search %1" -msgstr "已加载查询 %1" - -#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 -msgid "Location" -msgstr "位置" - -#: NOT FOUND IN SOURCE -msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." -msgstr "登入目录 %1 找不到或无法写入\\n。无法执行 RT。" - -#: NOT FOUND IN SOURCE -msgid "LogToFile" -msgstr "纪录等级" - -#: NOT FOUND IN SOURCE -msgid "LogToFileNamed" -msgstr "纪录档名" - -#: html/Elements/Header:91 -#. ("<span>".$session{'CurrentUser'}->Name."</span>") -msgid "Logged in as %1" -msgstr "使用者:%1" - -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:100 html/Elements/Login:68 html/Elements/Login:84 lib/RT/StyleGuide.pod:797 -msgid "Login" -msgstr "登入" - -#: html/Elements/Header:101 -msgid "Logout" -msgstr "注销" - -#: NOT FOUND IN SOURCE -msgid "Long-term contractor" -msgstr "长期契约员工" - -#: lib/RT/CustomField_Overlay.pm:932 -msgid "Lookup type mismatch" -msgstr "对应的类别不符" - -#: html/Search/Bulk.html:82 -msgid "Make Owner" -msgstr "新增承办人" - -#: html/Search/Bulk.html:106 -msgid "Make Status" -msgstr "新增现况" - -#: html/Search/Bulk.html:114 -msgid "Make date Due" -msgstr "新增到期日" - -#: html/Search/Bulk.html:116 -msgid "Make date Resolved" -msgstr "新增解决日期" - -#: html/Search/Bulk.html:110 -msgid "Make date Started" -msgstr "新增实际起始日期" - -#: html/Search/Bulk.html:108 -msgid "Make date Starts" -msgstr "新增应起始日期" - -#: html/Search/Bulk.html:112 -msgid "Make date Told" -msgstr "新增报告日期" - -#: html/Search/Bulk.html:102 -msgid "Make priority" -msgstr "新增优先顺位" - -#: html/Search/Bulk.html:104 -msgid "Make queue" -msgstr "新增表单" - -#: html/Search/Bulk.html:100 -msgid "Make subject" -msgstr "新增主题" - -#: lib/RT/Group_Overlay.pm:169 -msgid "Make this group visible to user" -msgstr "让此群组能被使用者看见" - -#: NOT FOUND IN SOURCE -msgid "Male" -msgstr "男" - -#: html/Admin/index.html:78 -msgid "Manage custom fields and custom field values" -msgstr "管理自订字段及字段值" - -#: html/Admin/index.html:69 -msgid "Manage groups and group membership" -msgstr "管理群组及所属成员" - -#: html/Admin/index.html:85 -msgid "Manage properties and configuration which apply to all queues" -msgstr "管理适用于所有表单的属性与设定" - -#: html/Admin/index.html:74 -msgid "Manage queues and queue-specific properties" -msgstr "管理各表单及相关属性" - -#: html/Admin/index.html:64 -msgid "Manage users and passwords" -msgstr "管理使用者与口令" - -#: NOT FOUND IN SOURCE -msgid "Manager" -msgstr "经理" - -#: NOT FOUND IN SOURCE -msgid "Mar" -msgstr "三月" - -#: lib/RT/Date.pm:443 -msgid "Mar." -msgstr "03" - -#: NOT FOUND IN SOURCE -msgid "March" -msgstr "三月" - -#: NOT FOUND IN SOURCE -msgid "Marketing Department" -msgstr "行销部" - -#: NOT FOUND IN SOURCE -msgid "Match Pattern" -msgstr "符合样式" - -#: NOT FOUND IN SOURCE -msgid "May" -msgstr "五月" - -#: lib/RT/Date.pm:445 -msgid "May." -msgstr "05" - -#: lib/RT/Transaction_Overlay.pm:731 -#. ($value) -msgid "Member %1 added" -msgstr "成员 %1 新增完毕" - -#: lib/RT/Transaction_Overlay.pm:771 -#. ($value) -msgid "Member %1 deleted" -msgstr "成员 %1 删除完毕" - -#: lib/RT/Group_Overlay.pm:1000 -msgid "Member added" -msgstr "新增成员完毕" - -#: lib/RT/Group_Overlay.pm:1162 -msgid "Member deleted" -msgstr "成员已删除" - -#: lib/RT/Group_Overlay.pm:1166 -msgid "Member not deleted" -msgstr "成员未删除" - -#: html/Elements/SelectLinkType:47 -msgid "Member of" -msgstr "隶属于" - -#: NOT FOUND IN SOURCE -msgid "Member since" -msgstr "注册日期" - -#: NOT FOUND IN SOURCE -msgid "MemberOf" -msgstr "隶属于" - -#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 -msgid "Members" -msgstr "成员" - -#: lib/RT/Transaction_Overlay.pm:728 -#. ($value) -msgid "Membership in %1 added" -msgstr "所属群组 %1 加入完毕" - -#: lib/RT/Transaction_Overlay.pm:768 -#. ($value) -msgid "Membership in %1 deleted" -msgstr "所属群组 %1 移除完毕" - -#: html/Admin/Elements/UserTabs:61 -msgid "Memberships" -msgstr "所属群组" - -#: html/Admin/Users/Memberships.html:60 -#. ($UserObj->Name) -msgid "Memberships of the user %1" -msgstr "使用者 %1 的所属群组" - -#: lib/RT/Ticket_Overlay.pm:2893 -msgid "Merge Successful" -msgstr "整合完毕" - -#: lib/RT/Ticket_Overlay.pm:2780 -msgid "Merge failed. Couldn't set EffectiveId" -msgstr "整合失败。无法设定 EffectiveId" - -#: lib/RT/Ticket_Overlay.pm:2788 -msgid "Merge failed. Couldn't set Status" -msgstr "整合失败。无法设定 Status" - -#: html/Elements/EditLinks:131 html/Ticket/Elements/BulkLinks:48 -msgid "Merge into" -msgstr "整合进" - -#: lib/RT/Transaction_Overlay.pm:734 -#. ($value) -msgid "Merged into %1" -msgstr "已整合进 %1" - -#: html/Search/Bulk.html:143 html/Ticket/Update.html:118 -msgid "Message" -msgstr "讯息" - -#: html/Ticket/Elements/ShowTransactionAttachments:164 -msgid "Message body not shown because it is too large or is not plain text." -msgstr "信件内文不是纯文字,因此无法显示。" - -#: lib/RT/Ticket_Overlay.pm:2451 -msgid "Message could not be recorded" -msgstr "无法纪录讯息" - -#: lib/RT/Ticket_Overlay.pm:2454 -msgid "Message recorded" -msgstr "讯息纪录成功" - -#: html/Ticket/Elements/PreviewScrips:122 -msgid "Messages about this ticket will not be sent to..." -msgstr "此申请单的相关讯息不会寄送给..." - -#: html/Elements/SelectTimeUnits:47 -msgid "Minutes" -msgstr "分钟" - -#: NOT FOUND IN SOURCE -msgid "Misc. Expense" -msgstr "杂费" - -#: html/Search/Build.html:490 lib/RT/Report/Tickets.pm:445 -msgid "Mismatched parentheses" -msgstr "未对齐的括号" - -#: lib/RT/Record.pm:954 -msgid "Missing a primary key?: %1" -msgstr "缺少主键值?(%1)" - -#: NOT FOUND IN SOURCE -msgid "Missing mandatory fields" -msgstr "缺少必填字段" - -#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:92 -msgid "Mobile" -msgstr "行动电话" - -#: NOT FOUND IN SOURCE -msgid "MobilePhone" -msgstr "行动电话" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "Modify Access Control List" -msgstr "更改权限控制清单" - -#: html/Admin/Elements/ObjectCustomFields:96 -#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) -msgid "Modify Custom Fields which apply to %1 for all %2" -msgstr "更改适用于 %1 内所有 %2 的自订字段" - -#: html/Admin/Elements/ObjectCustomFields:98 -#. (loc(lc($Types))) -msgid "Modify Custom Fields which apply to all %1" -msgstr "更改适用于所有%1的自订字段" - -#: NOT FOUND IN SOURCE -msgid "Modify Custom Fields which apply to all queues" -msgstr "更改适用于所有表单的自订字段" - -#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 -msgid "Modify Group Rights" -msgstr "更改群组权限" - -#: html/Admin/Groups/Members.html:105 html/User/Groups/Members.html:101 -msgid "Modify Members" -msgstr "更改成员" - -#: html/User/Delegation.html:58 -msgid "Modify Rights" -msgstr "更改权限" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "Modify Scrip templates for this queue" -msgstr "更改此表单的模板" - -#: lib/RT/Queue_Overlay.pm:100 -msgid "Modify Scrips for this queue" -msgstr "更改此表单的手续" - -#: NOT FOUND IN SOURCE -msgid "Modify System ACLS" -msgstr "更改系统权限清单" - -#: NOT FOUND IN SOURCE -msgid "Modify Template %1" -msgstr "更改模板 %1" - -#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 -msgid "Modify User Rights" -msgstr "更改使用者权限" - -#: NOT FOUND IN SOURCE -msgid "Modify Workflow" -msgstr "更改流程" - -#: html/Admin/Queues/CustomField.html:66 -#. ($QueueObj->Name()) -msgid "Modify a CustomField for queue %1" -msgstr "更改 %1 表单内的自订字段" - -#: NOT FOUND IN SOURCE -msgid "Modify a CustomField that applies to all queues" -msgstr "更改适用于所有表单的自订字段" - -#: html/Admin/Queues/Scrip.html:82 -#. ($QueueObj->Name) -msgid "Modify a scrip for queue %1" -msgstr "更改 %1 表单内的手续" - -#: html/Admin/Global/Scrip.html:75 -msgid "Modify a scrip that applies to all queues" -msgstr "更改适用于所有表单的手续" - -#: html/Admin/CustomFields/Objects.html:90 -#. ($CF->Name) -msgid "Modify associated objects for %1" -msgstr "更改适用 %1 的对象" - -#: NOT FOUND IN SOURCE -msgid "Modify dates for # %1" -msgstr "更改 # %1 的日期" - -#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 -#. ($TicketObj->Id) -msgid "Modify dates for #%1" -msgstr "更改 #%1 的日期" - -#: html/Ticket/ModifyDates.html:57 -#. ($TicketObj->Id) -msgid "Modify dates for ticket # %1" -msgstr "更改申请单 # %1 的日期" - -#: html/Admin/Elements/GlobalCustomFieldTabs:65 html/Admin/Global/index.html:72 -msgid "Modify global custom fields" -msgstr "更改全域自订字段" - -#: html/Admin/Elements/GlobalCustomFieldTabs:70 html/Admin/Global/GroupRights.html:46 html/Admin/Global/GroupRights.html:49 html/Admin/Global/index.html:77 -msgid "Modify global group rights" -msgstr "更改全域设定的群组权限" - -#: html/Admin/Global/GroupRights.html:54 -msgid "Modify global group rights." -msgstr "更改全域设定的群组权限。" - -#: NOT FOUND IN SOURCE -msgid "Modify global rights for groups" -msgstr "更改全域设定的群组权限" - -#: NOT FOUND IN SOURCE -msgid "Modify global rights for users" -msgstr "更改全域设定的使用者权限" - -#: NOT FOUND IN SOURCE -msgid "Modify global scrips" -msgstr "更改全域手续" - -#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 -msgid "Modify global user rights" -msgstr "更改全域设定的使用者权限" - -#: html/Admin/Global/UserRights.html:54 -msgid "Modify global user rights." -msgstr "更改全域设定的使用者权限。" - -#: lib/RT/Group_Overlay.pm:163 -msgid "Modify group metadata or delete group" -msgstr "更改群组数据及删除群组" - -#: html/Admin/CustomFields/GroupRights.html:164 -#. ($CustomFieldObj->Name) -msgid "Modify group rights for custom field %1" -msgstr "更改自订字段 %1 的群组权限" - -#: html/Admin/Groups/GroupRights.html:46 html/Admin/Groups/GroupRights.html:50 html/Admin/Groups/GroupRights.html:56 -#. ($GroupObj->Name) -msgid "Modify group rights for group %1" -msgstr "更改群组 %1 的群组权限" - -#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 -#. ($QueueObj->Name) -msgid "Modify group rights for queue %1" -msgstr "更改表单 %1 的群组权限" - -#: lib/RT/Group_Overlay.pm:165 -msgid "Modify membership roster for this group" -msgstr "更改此群组的成员名单" - -#: lib/RT/System.pm:82 -msgid "Modify one's own RT account" -msgstr "更改个人的帐号信息" - -#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 -#. ($QueueObj->Name) -msgid "Modify people related to queue %1" -msgstr "更改链接到表单 %1 的人员" - -#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:57 -#. ($Ticket->id) -#. ($Ticket->Id) -msgid "Modify people related to ticket #%1" -msgstr "更改申请单 #%1 链接到的人员" - -#: html/Admin/Queues/Scrips.html:67 -#. ($QueueObj->Name) -msgid "Modify scrips for queue %1" -msgstr "更改表单 %1 的手续" - -#: html/Admin/Elements/GlobalCustomFieldTabs:56 html/Admin/Global/Scrips.html:65 html/Admin/Global/index.html:63 -msgid "Modify scrips which apply to all queues" -msgstr "更改适用于所有表单的手续" - -#: html/Admin/Global/Template.html:102 html/Admin/Global/Template.html:46 html/Admin/Global/Template.html:51 html/Admin/Queues/Template.html:99 -#. (loc($TemplateObj->Name())) -#. ($TemplateObj->id) -msgid "Modify template %1" -msgstr "更改模板 %1" - -#: html/Admin/Global/Templates.html:65 -msgid "Modify templates which apply to all queues" -msgstr "更改适用于所有表单的模板" - -#: html/Admin/Global/index.html:85 -msgid "Modify the default \"RT at a glance\" view" -msgstr "更改预设的‘RT 一览’检视" - -#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 -#. ($Group->Name) -msgid "Modify the group %1" -msgstr "更改群组 %1" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "Modify the queue watchers" -msgstr "更改表单视察员" - -#: html/Admin/Users/Modify.html:309 -#. ($UserObj->Name) -msgid "Modify the user %1" -msgstr "更改使用者 %1" - -#: html/Ticket/ModifyAll.html:58 -#. ($Ticket->Id) -msgid "Modify ticket # %1" -msgstr "更改申请单 # %1" - -#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 -#. ($TicketObj->Id) -msgid "Modify ticket #%1" -msgstr "更改申请单 # %1" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "Modify tickets" -msgstr "更改申请单" - -#: html/Admin/CustomFields/UserRights.html:157 -#. ($CustomFieldObj->Name) -msgid "Modify user rights for custom field %1" -msgstr "更改自订字段 %1 的使用者权限" - -#: html/Admin/Groups/UserRights.html:46 html/Admin/Groups/UserRights.html:50 html/Admin/Groups/UserRights.html:56 -#. ($GroupObj->Name) -msgid "Modify user rights for group %1" -msgstr "更改群组 %1 的使用者权限" - -#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 -#. ($QueueObj->Name) -msgid "Modify user rights for queue %1" -msgstr "更改表单 %1 的使用者权限" - -#: NOT FOUND IN SOURCE -msgid "Modify watchers for queue '%1'" -msgstr "更改 '%1' 的视察员" - -#: NOT FOUND IN SOURCE -msgid "Modify workflow %1" -msgstr "更改流程 %1" - -#: NOT FOUND IN SOURCE -msgid "Modify workflows which apply to all queues" -msgstr "更改适用于所有表单的流程" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "ModifyACL" -msgstr "更改权限清单" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "ModifyCustomField" -msgstr "更改自订字段" - -#: lib/RT/Group_Overlay.pm:166 -msgid "ModifyOwnMembership" -msgstr "更改自己是否属于某群组" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "ModifyQueueWatchers" -msgstr "更改表单视察员" - -#: lib/RT/Queue_Overlay.pm:100 -msgid "ModifyScrips" -msgstr "更改手续" - -#: lib/RT/System.pm:82 -msgid "ModifySelf" -msgstr "更改个人帐号" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "ModifyTemplate" -msgstr "更改模板" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "ModifyTicket" -msgstr "更改申请单" - -#: NOT FOUND IN SOURCE -msgid "Mon" -msgstr "星期一" - -#: lib/RT/Date.pm:417 -msgid "Mon." -msgstr "星期一" - -#: NOT FOUND IN SOURCE -msgid "More" -msgstr "更多" - -#: html/Ticket/Elements/ShowRequestor:61 -#. ($name) -msgid "More about %1" -msgstr "关于 %1 的进一步信息" - -#: NOT FOUND IN SOURCE -msgid "Morning Shift" -msgstr "早班" - -#: NOT FOUND IN SOURCE -msgid "Move" -msgstr "移动" - -#: NOT FOUND IN SOURCE -msgid "Move All" -msgstr "全移" - -#: html/Admin/Elements/PickCustomFields:83 -msgid "Move down" -msgstr "下移" - -#: html/Admin/Elements/PickCustomFields:75 -msgid "Move up" -msgstr "上移" - -#: html/Admin/Elements/SelectSingleOrMultiple:48 -msgid "Multiple" -msgstr "多重" - -#: lib/RT/User_Overlay.pm:226 -msgid "Must specify 'Name' attribute" -msgstr "必须指定 'Name' 的属性" - -#: html/SelfService/Elements/MyRequests:57 -#. ($friendly_status) -msgid "My %1 tickets" -msgstr "我的 %1 申请单" - -#: NOT FOUND IN SOURCE -msgid "My Approvals" -msgstr "表单签核" - -#: html/Tools/Elements/Tabs:63 -msgid "My Day" -msgstr "今日事" - -#: NOT FOUND IN SOURCE -msgid "My Requests" -msgstr "表单申请追踪" - -#: NOT FOUND IN SOURCE -msgid "My Tickets" -msgstr "表单处理" - -#: html/Approvals/index.html:46 html/Approvals/index.html:47 -msgid "My approvals" -msgstr "表单签核" - -#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:54 -msgid "My saved searches" -msgstr "我的预存查询" - -#: html/Admin/CustomFields/Modify.html:58 html/Admin/Elements/AddCustomFieldValue:53 html/Admin/Elements/EditCustomField:55 html/Admin/Elements/EditCustomFieldValues:55 html/Admin/Elements/ModifyTemplate:49 html/Admin/Groups/Modify.html:65 html/Search/Bulk.html:157 html/User/Groups/Modify.html:65 -msgid "Name" -msgstr "名称" - -#: lib/RT/User_Overlay.pm:233 -msgid "Name in use" -msgstr "帐号已有人使用" - -#: NOT FOUND IN SOURCE -msgid "Nationality" -msgstr "国籍" - -#: NOT FOUND IN SOURCE -msgid "Need approval from system administrator" -msgstr "需先由系统管理员进行批准" - -#: html/Ticket/Elements/ShowDates:73 -msgid "Never" -msgstr "从未更动" - -#: NOT FOUND IN SOURCE -msgid "New" -msgstr "新建立" - -#: html/Elements/EditLinks:117 -msgid "New Links" -msgstr "新增关系" - -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 -msgid "New Password" -msgstr "新的口令" - -#: etc/initialdata:332 -msgid "New Pending Approval" -msgstr "新的待签核事项" - -#: NOT FOUND IN SOURCE -msgid "New Query" -msgstr "新增查询" - -#: NOT FOUND IN SOURCE -msgid "New Request" -msgstr "表单申请" - -#: html/Ticket/Elements/Tabs:212 -msgid "New Search" -msgstr "新增查询" - -#: NOT FOUND IN SOURCE -msgid "New Watchers" -msgstr "新增视察员" - -#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 -msgid "New custom field" -msgstr "新增自订字段" - -#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 -msgid "New group" -msgstr "新增群组" - -#: html/SelfService/Prefs.html:53 -msgid "New password" -msgstr "新的口令" - -#: lib/RT/User_Overlay.pm:816 -msgid "New password notification sent" -msgstr "送出新口令通知" - -#: html/Admin/Elements/QueueTabs:95 -msgid "New queue" -msgstr "新增表单" - -#: html/Ticket/Elements/Reminders:118 -msgid "New reminder:" -msgstr "新增提醒项目:" - -#: NOT FOUND IN SOURCE -msgid "New request" -msgstr "提出申请单" - -#: html/Admin/Elements/SelectRights:65 -msgid "New rights" -msgstr "新增权限" - -#: html/Admin/Global/Scrip.html:63 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:76 -msgid "New scrip" -msgstr "新增手续" - -#: NOT FOUND IN SOURCE -msgid "New search" -msgstr "重新查询" - -#: html/Admin/Global/Template.html:81 html/Admin/Global/Templates.html:60 html/Admin/Queues/Template.html:79 html/Admin/Queues/Templates.html:71 -msgid "New template" -msgstr "新增模板" - -#: html/SelfService/Elements/Tabs:84 html/SelfService/Elements/Tabs:88 -msgid "New ticket" -msgstr "提出申请单" - -#: lib/RT/Ticket_Overlay.pm:2757 -msgid "New ticket doesn't exist" -msgstr "没有新申请单" - -#: html/Admin/Elements/UserTabs:81 -msgid "New user" -msgstr "新增使用者" - -#: html/Admin/Elements/CreateUserCalled:47 -msgid "New user called" -msgstr "新使用者名字" - -#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 -msgid "New watchers" -msgstr "新视察员" - -#: NOT FOUND IN SOURCE -msgid "New window setting" -msgstr "更新窗口设定" - -#: NOT FOUND IN SOURCE -msgid "New workflow" -msgstr "新增流程" - -#: html/Helpers/CalPopup.html:58 html/Ticket/Elements/Tabs:92 -msgid "Next" -msgstr "下一项" - -#: html/Elements/TicketList:104 -msgid "Next Page" -msgstr "下一页" - -#: NOT FOUND IN SOURCE -msgid "Next page" -msgstr "下一页" - -#: NOT FOUND IN SOURCE -msgid "NickName" -msgstr "昵称" - -#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 -msgid "Nickname" -msgstr "昵称" - -#: NOT FOUND IN SOURCE -msgid "Night Shift" -msgstr "小夜班" - -#: NOT FOUND IN SOURCE -msgid "No" -msgstr "否" - -#: html/Admin/CustomFields/UserRights.html:145 -msgid "No Class defined" -msgstr "尚未定义类别" - -#: html/Admin/CustomFields/Modify.html:166 html/Admin/Elements/EditCustomField:119 -msgid "No CustomField" -msgstr "无自订字段" - -#: html/Admin/CustomFields/GroupRights.html:103 -msgid "No CustomField defined" -msgstr "尚未定义自订字段" - -#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 -msgid "No Group defined" -msgstr "尚未定义群组" - -#: lib/RT/Tickets_Overlay_SQL.pm:482 -msgid "No Query" -msgstr "没有查询" - -#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 -msgid "No Queue defined" -msgstr "尚未定义表单" - -#: bin/rt-crontool:73 -msgid "No RT user found. Please consult your RT administrator.\\n" -msgstr "找不到 RT 使用者。请向 RT 管理员查询。\\n" - -#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 -msgid "No Template" -msgstr "没有模板" - -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket " -msgstr "未指定申请单。退出申请单 " - -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket modifications\\n\\n" -msgstr "未指定申请单。退出申请单更改\\n\\n" - -#: NOT FOUND IN SOURCE -msgid "No Workflow" -msgstr "没有流程" - -#: html/Approvals/Elements/Approve:77 -msgid "No action" -msgstr "暂不处理" - -#: lib/RT/Record.pm:949 -msgid "No column specified" -msgstr "未指定字段" - -#: NOT FOUND IN SOURCE -msgid "No command found\\n" -msgstr "找不到命令" - -#: html/Ticket/Elements/ShowRequestor:68 -msgid "No comment entered about this user" -msgstr "没有对这名使用者的评论" - -#: NOT FOUND IN SOURCE -msgid "No correspondence attached" -msgstr "没有附上申请单回复" - -#: lib/RT/Action/Generic.pm:185 lib/RT/Condition/Generic.pm:197 lib/RT/Search/ActiveTicketsInQueue.pm:77 lib/RT/Search/Generic.pm:134 lib/RT/Search/Googleish.pm:78 -#. (ref $self) -msgid "No description for %1" -msgstr "没有对 %1 的描述" - -#: lib/RT/Users_Overlay.pm:190 -msgid "No group specified" -msgstr "未指定群组" - -#: html/Admin/Groups/index.html:52 -msgid "No groups matching search criteria found." -msgstr "找不到符合查询条件的群组。" - -#: lib/RT/Ticket_Overlay.pm:2393 -msgid "No message attached" -msgstr "没有附上讯息" - -#: lib/RT/User_Overlay.pm:1034 -msgid "No password set" -msgstr "没有设定口令" - -#: lib/RT/Queue_Overlay.pm:361 -msgid "No permission to create queues" -msgstr "没有新增表单的权限" - -#: lib/RT/Ticket_Overlay.pm:420 -#. ($QueueObj->Name) -msgid "No permission to create tickets in the queue '%1'" -msgstr "没有在表单 '%1' 新增申请单的权限" - -#: lib/RT/User_Overlay.pm:186 -msgid "No permission to create users" -msgstr "没有新增使用者的权限" - -#: html/SelfService/Display.html:167 -msgid "No permission to display that ticket" -msgstr "没有显示该申请单的权限" - -#: lib/RT/SavedSearch.pm:156 -msgid "No permission to save system-wide searches" -msgstr "没有储存全域预存查询的权限" - -#: html/SelfService/Update.html:117 -msgid "No permission to view update ticket" -msgstr "没有检视申请单更新的权限" - -#: lib/RT/Queue_Overlay.pm:795 lib/RT/Ticket_Overlay.pm:1489 -msgid "No principal specified" -msgstr "未指定单位" - -#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 -msgid "No principals selected." -msgstr "未指定单位。" - -#: NOT FOUND IN SOURCE -msgid "No protocol specified in %1" -msgstr "%1 内未指定协议" - -#: html/Admin/Queues/index.html:57 -msgid "No queues matching search criteria found." -msgstr "找不到符合查询条件的表单。" - -#: html/Admin/Elements/SelectRights:106 -msgid "No rights found" -msgstr "找不到权限" - -#: html/Admin/Elements/SelectRights:53 -msgid "No rights granted." -msgstr "没有选定权限" - -#: lib/RT/SavedSearch.pm:196 -msgid "No search loaded" -msgstr "尚未加载查询" - -#: html/Search/Bulk.html:232 -msgid "No search to operate on." -msgstr "没有要进行的查询" - -#: html/Elements/RT__Ticket/ColumnMap:137 html/Search/Results.rdf:78 -msgid "No subject" -msgstr "没有标题" - -#: NOT FOUND IN SOURCE -msgid "No ticket id specified" -msgstr "未指定申请单编号" - -#: lib/RT/Transaction_Overlay.pm:528 lib/RT/Transaction_Overlay.pm:565 -msgid "No transaction type specified" -msgstr "未指定更动报告类别" - -#: NOT FOUND IN SOURCE -msgid "No user or email address specified" -msgstr "未指定使用者或电子邮件地址" - -#: html/Admin/Users/index.html:55 -msgid "No users matching search criteria found." -msgstr "找不到符合查询条件的使用者。" - -#: NOT FOUND IN SOURCE -msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" -msgstr "找不到合格的 RT 使用者。RT cvs 处理器已停用。请向 RT 管理者询问。\\n" - -#: lib/RT/Record.pm:946 -msgid "No value sent to _Set!\\n" -msgstr "_Set 没有收到任何值!\\n" - -#: html/Elements/QuickCreate:59 -msgid "Nobody" -msgstr "没有人" - -#: lib/RT/Record.pm:951 -msgid "Nonexistant field?" -msgstr "字段不存在?" - -#: NOT FOUND IN SOURCE -msgid "Normal Users" -msgstr "一般用户群组" - -#: html/Search/Chart:71 html/Search/Elements/Chart:88 -msgid "Not Set" -msgstr "未设定" - -#: NOT FOUND IN SOURCE -msgid "Not configured to fetch the content from a %1 in %2" -msgstr "未设定成从 %2 内撷取 %1" - -#: NOT FOUND IN SOURCE -msgid "Not logged in" -msgstr "尚未登入" - -#: html/Elements/Header:96 -msgid "Not logged in." -msgstr "尚未登入" - -#: lib/RT/Date.pm:397 -msgid "Not set" -msgstr "尚未设定" - -#: html/NoAuth/Reminder.html:48 -msgid "Not yet implemented." -msgstr "尚未完工。" - -#: NOT FOUND IN SOURCE -msgid "Not yet implemented...." -msgstr "尚未完工..." - -#: html/Approvals/Elements/Approve:81 -msgid "Notes" -msgstr "备注" - -#: NOT FOUND IN SOURCE -msgid "Notes:" -msgstr "备注:" - -#: lib/RT/User_Overlay.pm:819 -msgid "Notification could not be sent" -msgstr "无法送出通知" - -#: etc/initialdata:101 -msgid "Notify AdminCcs" -msgstr "通知管理员副本收件人" - -#: etc/initialdata:97 -msgid "Notify AdminCcs as Comment" -msgstr "以评论方式通知管理员副本收件人" - -#: etc/initialdata:93 etc/upgrade/3.1.17/content:6 -msgid "Notify Ccs" -msgstr "通知副本收件人" - -#: etc/initialdata:89 etc/upgrade/3.1.17/content:2 -msgid "Notify Ccs as Comment" -msgstr "以评论方式通知副本收件人" - -#: etc/initialdata:128 -msgid "Notify Other Recipients" -msgstr "通知其它收件人" - -#: etc/initialdata:124 -msgid "Notify Other Recipients as Comment" -msgstr "以评论方式通知其它收件人" - -#: etc/initialdata:85 -msgid "Notify Owner" -msgstr "通知承办人" - -#: etc/initialdata:81 -msgid "Notify Owner as Comment" -msgstr "以评论方式通知承办人" - -#: etc/initialdata:376 -msgid "Notify Owner of their rejected ticket" -msgstr "通知承办人申请单已驳回" - -#: etc/initialdata:365 -msgid "Notify Owner of their ticket has been approved by all approvers" -msgstr "通知承办人申请单已完成全部签核" - -#: etc/initialdata:353 -msgid "Notify Owner of their ticket has been approved by some approver" -msgstr "通知承办人申请单已完成某项签核" - -#: etc/initialdata:334 -msgid "Notify Owners and AdminCcs of new items pending their approval" -msgstr "整理待签核事项,通知承办人及管理员副本收件人" - -#: etc/initialdata:77 -msgid "Notify Requestors" -msgstr "通知申请人" - -#: etc/initialdata:111 -msgid "Notify Requestors and Ccs" -msgstr "通知申请人及副本收件人" - -#: etc/initialdata:106 -msgid "Notify Requestors and Ccs as Comment" -msgstr "以评论方式通知申请人及副本收件人" - -#: etc/initialdata:120 -msgid "Notify Requestors, Ccs and AdminCcs" -msgstr "通知申请人、副本及管理员副本收件人" - -#: etc/initialdata:116 -msgid "Notify Requestors, Ccs and AdminCcs as Comment" -msgstr "以评论方式通知申请人、副本及管理员副本收件人" - -#: NOT FOUND IN SOURCE -msgid "Notify people:" -msgstr "通知对象" - -#: NOT FOUND IN SOURCE -msgid "Nov" -msgstr "十一月" - -#: lib/RT/Date.pm:451 -msgid "Nov." -msgstr "11" - -#: NOT FOUND IN SOURCE -msgid "November" -msgstr "十一月" - -#: NOT FOUND IN SOURCE -msgid "OIN104" -msgstr "104eHRMS 接口" - -#: NOT FOUND IN SOURCE -msgid "OK" -msgstr "确定" - -#: html/Search/Elements/SelectAndOr:47 -msgid "OR" -msgstr "OR" - -#: lib/RT/Record.pm:322 -msgid "Object could not be created" -msgstr "无法新增对象" - -#: lib/RT/Record.pm:123 -msgid "Object could not be deleted" -msgstr "无法删除对象" - -#: lib/RT/Record.pm:341 -msgid "Object created" -msgstr "对象新增完毕" - -#: lib/RT/Record.pm:120 -msgid "Object deleted" -msgstr "对象删除完毕" - -#: html/Admin/CustomFields/Objects.html:72 html/Admin/Elements/ObjectCustomFields:63 -#. ($ObjectType) -#. ($LookupType) -msgid "Object of type %1 cannot take custom fields" -msgstr "自订字段不适用于类别为 %1 的对象" - -#: lib/RT/CustomField_Overlay.pm:967 -msgid "Object type mismatch" -msgstr "对象类别不符" - -#: NOT FOUND IN SOURCE -msgid "Occupation Status" -msgstr "在职状态" - -#: NOT FOUND IN SOURCE -msgid "Oct" -msgstr "十月" - -#: lib/RT/Date.pm:450 -msgid "Oct." -msgstr "10" - -#: NOT FOUND IN SOURCE -msgid "October" -msgstr "十月" - -#: NOT FOUND IN SOURCE -msgid "Office Phone" -msgstr "办公室电话" - -#: html/Tools/Elements/Tabs:55 -msgid "Offline" -msgstr "离线" - -#: html/Tools/Offline.html:49 -msgid "Offline edits" -msgstr "离线编辑" - -#: html/Tools/Offline.html:46 -msgid "Offline upload" -msgstr "离线上载" - -#: html/Elements/SelectDateRelation:56 -msgid "On" -msgstr "等于" - -#: lib/RT/Transaction_Overlay.pm:326 -#. ($self->CreatedAsString(), $self->CreatorObj->Name()) -msgid "On %1, %2 wrote:" -msgstr "在 %1 时,%2 写到:" - -#: NOT FOUND IN SOURCE -msgid "On Change" -msgstr "更改申请单时" - -#: etc/initialdata:163 -msgid "On Comment" -msgstr "评论时" - -#: etc/initialdata:156 -msgid "On Correspond" -msgstr "回复申请单时" - -#: etc/initialdata:145 -msgid "On Create" -msgstr "新增申请单时" - -#: etc/initialdata:184 -msgid "On Owner Change" -msgstr "承办人改变时" - -#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 -msgid "On Priority Change" -msgstr "优先顺位改变时" - -#: etc/initialdata:192 -msgid "On Queue Change" -msgstr "表单改变时" - -#: etc/initialdata:198 -msgid "On Resolve" -msgstr "解决申请单时" - -#: etc/initialdata:169 -msgid "On Status Change" -msgstr "现况改变时" - -#: etc/initialdata:150 -msgid "On Transaction" -msgstr "发生更动时" - -#: html/Approvals/Elements/PendingMyApproval:70 -#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter' id='CreatedAfter' />") -msgid "Only show approvals for requests created after %1" -msgstr "仅显示 %1 之后新增的申请单" - -#: html/Approvals/Elements/PendingMyApproval:68 -#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore' id='CreatedBefore' />") -msgid "Only show approvals for requests created before %1" -msgstr "仅显示 %1 之前新增的申请单" - -#: html/Admin/CustomFields/index.html:75 -msgid "Only show custom fields for:" -msgstr "仅显示适用于下列项目的自订字段:" - -#: NOT FOUND IN SOURCE -msgid "Open" -msgstr "开启" - -#: html/SelfService/index.html:46 -msgid "Open Tickets" -msgstr "开启申请单" - -#: html/Ticket/Elements/Tabs:160 -msgid "Open it" -msgstr "开启" - -#: html/SelfService/Elements/Tabs:75 -msgid "Open tickets" -msgstr "开启的申请单" - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in a new window" -msgstr "在新窗口开启(列表的)申请单" - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in another window" -msgstr "在另一个窗口开启(列表的)申请单" - -#: etc/initialdata:140 -msgid "Open tickets on correspondence" -msgstr "收到回复时即开启申请单" - -#: NOT FOUND IN SOURCE -msgid "Opened Tickets" -msgstr "已申请运行中表单" - -#: NOT FOUND IN SOURCE -msgid "Opinion" -msgstr "意见" - -#: NOT FOUND IN SOURCE -msgid "Option Description" -msgstr "选项描述" - -#: NOT FOUND IN SOURCE -msgid "Option Name" -msgstr "选项名称" - -#: html/Prefs/MyRT.html:70 -msgid "Options" -msgstr "选项" - -#: html/Search/Elements/DisplayOptions:59 -msgid "Order by" -msgstr "排序方式" - -#: NOT FOUND IN SOURCE -msgid "Ordering and sorting" -msgstr "顺序与排序方式" - -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 -msgid "Organization" -msgstr "组织名称" - -#: NOT FOUND IN SOURCE -msgid "Organization:" -msgstr "组织:" - -#: html/Approvals/Elements/Approve:53 -#. ($approving->Id, $approving->Subject) -msgid "Originating ticket: #%1" -msgstr "原申请单:#%1" - -#: NOT FOUND IN SOURCE -msgid "Other comma-delimited email addresses" -msgstr "其它e-mail帐号 (仅e-mail通知;多笔帐号请用逗号','区隔)" - -#: NOT FOUND IN SOURCE -msgid "Out of range" -msgstr "期限外" - -#: lib/RT/Transaction_Overlay.pm:622 -msgid "Outgoing email about a comment recorded" -msgstr "已纪录发送的评论邮件" - -#: lib/RT/Transaction_Overlay.pm:626 -msgid "Outgoing email recorded" -msgstr "已纪录发送的邮件" - -#: html/Admin/Queues/Modify.html:90 -msgid "Over time, priority moves toward" -msgstr "优先顺位随时间增加调整为" - -#: NOT FOUND IN SOURCE -msgid "Override current custom fields with fields from %1" -msgstr "以 %1 表单的自订字段取代现有字段" - -#: NOT FOUND IN SOURCE -msgid "Override global rights" -msgstr "取代全域权限" - -#: NOT FOUND IN SOURCE -msgid "OverrideGlobalACL status %1" -msgstr "取代全域权限 %1" - -#: NOT FOUND IN SOURCE -msgid "Overview" -msgstr "总览" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "Own tickets" -msgstr "承办申请单" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "OwnTicket" -msgstr "承办申请单" - -#: etc/initialdata:38 html/Elements/QuickCreate:56 html/Search/Elements/PickBasics:101 html/Ticket/Create.html:72 html/Ticket/Elements/EditBasics:61 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/Reminders:129 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:110 lib/RT/Tickets_Overlay.pm:2006 -msgid "Owner" -msgstr "承办人" - -#: NOT FOUND IN SOURCE -msgid "Owner changed from %1 to %2" -msgstr "承办人已从 %1 改为 %2" - -#: lib/RT/Ticket_Overlay.pm:505 -msgid "Owner could not be set." -msgstr "无法设定承办人。" - -#: lib/RT/Transaction_Overlay.pm:672 -#. ($Old->Name , $New->Name) -msgid "Owner forcibly changed from %1 to %2" -msgstr "强制将承办人从 %1 改为 %2" - -#: NOT FOUND IN SOURCE -msgid "Owner is" -msgstr "承办人" - -#: NOT FOUND IN SOURCE -msgid "Owner's Phone" -msgstr "承办人电话" - -#: NOT FOUND IN SOURCE -msgid "Page #" -msgstr " " - -#: html/Elements/TicketList:78 -#. ($Page, int($TotalFound/$Rows)+$oddRows) -msgid "Page %1 of %2" -msgstr "第 %1/%2 页" - -#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:96 -msgid "Pager" -msgstr "呼叫器" - -#: NOT FOUND IN SOURCE -msgid "PagerPhone" -msgstr "呼叫器号码" - -#: NOT FOUND IN SOURCE -msgid "Parameter" -msgstr "呼叫参数" - -#: NOT FOUND IN SOURCE -msgid "Parent" -msgstr "上级" - -#: html/Elements/EditLinks:144 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:222 html/Ticket/Elements/BulkLinks:60 -msgid "Parents" -msgstr "母申请单" - -#: NOT FOUND IN SOURCE -msgid "Park Space" -msgstr "停车位申请" - -#: html/Elements/Login:95 html/User/Prefs.html:105 -msgid "Password" -msgstr "口令" - -#: html/NoAuth/Reminder.html:46 -msgid "Password Reminder" -msgstr "口令提示" - -#: lib/RT/Transaction_Overlay.pm:781 lib/RT/User_Overlay.pm:1045 -msgid "Password changed" -msgstr "口令更改完毕" - -#: lib/RT/User_Overlay.pm:1037 lib/RT/User_Overlay.pm:214 -#. ($RT::MinimumPasswordLength) -msgid "Password needs to be at least %1 characters long" -msgstr "口令长度至少必须为 %1 个字元" - -#: lib/RT/User_Overlay.pm:1044 -msgid "Password set" -msgstr "口令已设定" - -#: NOT FOUND IN SOURCE -msgid "Password too short" -msgstr "口令太短" - -#: html/User/Prefs.html:240 -#. (loc_fuzzy($msg)) -msgid "Password: %1" -msgstr "口令:%1" - -#: lib/RT/User_Overlay.pm:1030 -msgid "Password: Permission Denied" -msgstr "口令:权限不足" - -#: html/Admin/Users/Modify.html:364 -msgid "Passwords do not match." -msgstr "口令确认失败。" - -#: html/User/Prefs.html:242 -msgid "Passwords do not match. Your password has not been changed" -msgstr "口令确认失败。您的口令并未改变。" - -#: NOT FOUND IN SOURCE -msgid "Pelase select a queue" -msgstr "请选择表单名称" - -#: NOT FOUND IN SOURCE -msgid "Pending Approval" -msgstr "等待签核" - -#: html/Ticket/Elements/ShowSummary:62 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 -msgid "People" -msgstr "人员" - -#: NOT FOUND IN SOURCE -msgid "People with Queue Rights" -msgstr "拥有表单权限人员" - -#: etc/initialdata:133 -msgid "Perform a user-defined action" -msgstr "执行使用者自订的动作" - -#: html/Admin/Tools/Configuration.html:94 -msgid "Perl configuration" -msgstr "Perl 设定" - -#: lib/RT/ACE_Overlay.pm:251 lib/RT/ACE_Overlay.pm:257 lib/RT/ACE_Overlay.pm:580 lib/RT/ACE_Overlay.pm:590 lib/RT/ACE_Overlay.pm:600 lib/RT/ACE_Overlay.pm:665 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:405 lib/RT/Attribute_Overlay.pm:414 lib/RT/Attribute_Overlay.pm:427 lib/RT/CurrentUser.pm:116 lib/RT/CurrentUser.pm:125 lib/RT/CustomField_Overlay.pm:1017 lib/RT/CustomField_Overlay.pm:1138 lib/RT/CustomField_Overlay.pm:1281 lib/RT/CustomField_Overlay.pm:172 lib/RT/CustomField_Overlay.pm:189 lib/RT/CustomField_Overlay.pm:200 lib/RT/CustomField_Overlay.pm:374 lib/RT/CustomField_Overlay.pm:403 lib/RT/CustomField_Overlay.pm:763 lib/RT/CustomField_Overlay.pm:936 lib/RT/CustomField_Overlay.pm:971 lib/RT/Group_Overlay.pm:1117 lib/RT/Group_Overlay.pm:1121 lib/RT/Group_Overlay.pm:1130 lib/RT/Group_Overlay.pm:1240 lib/RT/Group_Overlay.pm:1244 lib/RT/Group_Overlay.pm:1250 lib/RT/Group_Overlay.pm:445 lib/RT/Group_Overlay.pm:542 lib/RT/Group_Overlay.pm:620 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:726 lib/RT/Group_Overlay.pm:730 lib/RT/Group_Overlay.pm:736 lib/RT/Group_Overlay.pm:922 lib/RT/Group_Overlay.pm:926 lib/RT/Group_Overlay.pm:939 lib/RT/Queue_Overlay.pm:1054 lib/RT/Queue_Overlay.pm:140 lib/RT/Queue_Overlay.pm:158 lib/RT/Queue_Overlay.pm:657 lib/RT/Queue_Overlay.pm:667 lib/RT/Queue_Overlay.pm:681 lib/RT/Queue_Overlay.pm:819 lib/RT/Queue_Overlay.pm:828 lib/RT/Queue_Overlay.pm:841 lib/RT/Scrip_Overlay.pm:149 lib/RT/Scrip_Overlay.pm:160 lib/RT/Scrip_Overlay.pm:224 lib/RT/Scrip_Overlay.pm:538 lib/RT/Template_Overlay.pm:108 lib/RT/Template_Overlay.pm:277 lib/RT/Ticket_Overlay.pm:1357 lib/RT/Ticket_Overlay.pm:1367 lib/RT/Ticket_Overlay.pm:1381 lib/RT/Ticket_Overlay.pm:1522 lib/RT/Ticket_Overlay.pm:1532 lib/RT/Ticket_Overlay.pm:1546 lib/RT/Ticket_Overlay.pm:1663 lib/RT/Ticket_Overlay.pm:1983 lib/RT/Ticket_Overlay.pm:2126 lib/RT/Ticket_Overlay.pm:2296 lib/RT/Ticket_Overlay.pm:2346 lib/RT/Ticket_Overlay.pm:2525 lib/RT/Ticket_Overlay.pm:2538 lib/RT/Ticket_Overlay.pm:2614 lib/RT/Ticket_Overlay.pm:2627 lib/RT/Ticket_Overlay.pm:2748 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2990 lib/RT/Ticket_Overlay.pm:3000 lib/RT/Ticket_Overlay.pm:3005 lib/RT/Ticket_Overlay.pm:3224 lib/RT/Ticket_Overlay.pm:3228 lib/RT/Ticket_Overlay.pm:3371 lib/RT/Ticket_Overlay.pm:3497 lib/RT/Transaction_Overlay.pm:516 lib/RT/Transaction_Overlay.pm:523 lib/RT/Transaction_Overlay.pm:551 lib/RT/Transaction_Overlay.pm:558 lib/RT/User_Overlay.pm:1176 lib/RT/User_Overlay.pm:1856 lib/RT/User_Overlay.pm:369 lib/RT/User_Overlay.pm:735 lib/RT/User_Overlay.pm:774 -msgid "Permission Denied" -msgstr "权限不足" - -#: NOT FOUND IN SOURCE -msgid "Permission Settings" -msgstr "权限设定" - -#: lib/RT/Template_Overlay.pm:238 lib/RT/Template_Overlay.pm:247 -msgid "Permission denied" -msgstr "权限不足" - -#: lib/RT/Template_Overlay.pm:372 -msgid "Permissions denied" -msgstr "权限不足" - -#: NOT FOUND IN SOURCE -msgid "Permitted Queues:" -msgstr "拥有权限表单列表:" - -#: NOT FOUND IN SOURCE -msgid "Personal" -msgstr "代理人群组" - -#: html/User/Elements/Tabs:56 -msgid "Personal Groups" -msgstr "代理人群组" - -#: NOT FOUND IN SOURCE -msgid "Personal Homepage" -msgstr "个人首页" - -#: NOT FOUND IN SOURCE -msgid "Personal Todo" -msgstr "私人待办事项" - -#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 -msgid "Personal groups" -msgstr "代理人群组" - -#: html/User/Elements/DelegateRights:58 -msgid "Personal groups:" -msgstr "代理人群组:" - -#: NOT FOUND IN SOURCE -msgid "PersonalHomepage" -msgstr "个人首页" - -#: NOT FOUND IN SOURCE -msgid "Phase 1: Create/Rename Groups (%1)" -msgstr "第一阶段:群组建立及改名 (%1)" - -#: NOT FOUND IN SOURCE -msgid "Phase 2: Disable/Enable Groups (%1)" -msgstr "第二阶段:群组停用及启用 (%1)" - -#: NOT FOUND IN SOURCE -msgid "Phase 3: Create/Rename Users (%1)" -msgstr "第三阶段:使用者建立及改名 (%1)" - -#: NOT FOUND IN SOURCE -msgid "Phase 4: Disable/Enable Users (%1)" -msgstr "第四阶段:使用者停用及启用 (%1)" - -#: NOT FOUND IN SOURCE -msgid "Phone" -msgstr "电话" - -#: NOT FOUND IN SOURCE -msgid "Phone number" -msgstr "电话号码" - -#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:81 -msgid "Phone numbers" -msgstr "电话号码" - -#: NOT FOUND IN SOURCE -msgid "Pick" -msgstr "挑选" - -#: NOT FOUND IN SOURCE -msgid "Place of Departure" -msgstr "出发地点" - -#: NOT FOUND IN SOURCE -msgid "Placeholder" -msgstr "尚未完工" - -#: NOT FOUND IN SOURCE -msgid "Please Select" -msgstr "请选择" - -#: NOT FOUND IN SOURCE -msgid "Please check items to be deleted first." -msgstr "请先选中要删除的对象" - -#: NOT FOUND IN SOURCE -msgid "Please select a group" -msgstr "请选择群组" - -#: NOT FOUND IN SOURCE -msgid "Please select a queue's workflow" -msgstr "请选择表单流程" - -#: NOT FOUND IN SOURCE -msgid "Please select one of the category types above." -msgstr "请从上面选择一项分类。" - -#: NOT FOUND IN SOURCE -msgid "Please select role" -msgstr "请选择角色" - -#: NOT FOUND IN SOURCE -msgid "Policy" -msgstr "经营规章" - -#: NOT FOUND IN SOURCE -msgid "Position" -msgstr "职务" - -#: NOT FOUND IN SOURCE -msgid "Position Level" -msgstr "职等" - -#: NOT FOUND IN SOURCE -msgid "Position Name" -msgstr "职务名称" - -#: NOT FOUND IN SOURCE -msgid "Position Number" -msgstr "职务代码" - -#: NOT FOUND IN SOURCE -msgid "Position Rank" -msgstr "职级" - -#: NOT FOUND IN SOURCE -msgid "Pref" -msgstr "偏好" - -#: html/Elements/Header:93 html/Elements/Tabs:91 html/SelfService/Elements/Tabs:95 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 -msgid "Preferences" -msgstr "偏好" - -#: html/Admin/Users/MyRT.html:75 -#. ($pane, $UserObj->Name) -msgid "Preferences %1 for user %2 ." -msgstr "使用者 %2 的 %1 偏好。" - -#: html/Prefs/MyRT.html:141 -#. ($pane) -msgid "Preferences saved for %1." -msgstr "成功储存 %1 的偏好。" - -#: NOT FOUND IN SOURCE -msgid "Prefs" -msgstr "个人信息" - -#: lib/RT/Action/Generic.pm:195 -msgid "Prepare Stubbed" -msgstr "预备动作完毕" - -#: html/Helpers/CalPopup.html:56 html/Ticket/Elements/Tabs:84 -msgid "Prev" -msgstr "上一项" - -#: html/Elements/TicketList:101 -msgid "Previous Page" -msgstr "上一页" - -#: NOT FOUND IN SOURCE -msgid "Previous page" -msgstr "前一页" - -#: NOT FOUND IN SOURCE -msgid "Pri" -msgstr "优先顺位" - -#: lib/RT/ACE_Overlay.pm:157 lib/RT/ACE_Overlay.pm:239 lib/RT/ACE_Overlay.pm:569 -#. ($args{'PrincipalId'}) -msgid "Principal %1 not found." -msgstr "找不到单位 %1。" - -#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:181 html/Ticket/Elements/EditBasics:92 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1790 -msgid "Priority" -msgstr "优先顺位" - -#: html/Admin/Queues/Modify.html:86 -msgid "Priority starts at" -msgstr "优先顺位起始值" - -#: html/Search/Elements/EditSearches:50 -msgid "Privacy:" -msgstr "隐私设定:" - -#: etc/initialdata:25 -msgid "Privileged" -msgstr "内部成员" - -#: html/Admin/Users/Modify.html:342 html/User/Prefs.html:231 -#. (loc_fuzzy($msg)) -msgid "Privileged status: %1" -msgstr "内部成员状态:%1" - -#: html/Admin/Users/index.html:102 -msgid "Privileged users" -msgstr "内部成员" - -#: NOT FOUND IN SOURCE -msgid "Process Status" -msgstr "处理状态" - -#: NOT FOUND IN SOURCE -msgid "Project" -msgstr "项目" - -#: NOT FOUND IN SOURCE -msgid "Project Name" -msgstr "项目名称" - -#: NOT FOUND IN SOURCE -msgid "Projects" -msgstr "项目" - -#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 -msgid "Pseudogroup for internal use" -msgstr "内部用的虚拟群组" - -#: NOT FOUND IN SOURCE -msgid "Public Description" -msgstr "公开说明" - -#: NOT FOUND IN SOURCE -msgid "Public Info" -msgstr "公开信息" - -#: NOT FOUND IN SOURCE -msgid "Public Service" -msgstr "公共事务区" - -#: NOT FOUND IN SOURCE -msgid "Purging stale data: %1" -msgstr "移除过期数据: %1" - -#: NOT FOUND IN SOURCE -msgid "Query" -msgstr "查询" - -#: html/Search/Build.html:121 -msgid "Query Builder" -msgstr "建立查询" - -#: html/Search/Elements/Chart:101 -msgid "Query:" -msgstr "查询:" - -#: html/Elements/QueueSummary:48 html/Elements/QuickCreate:54 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:62 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/Tools/Reports/CreatedByDates.html:85 html/Tools/Reports/ResolvedByDates.html:86 html/Tools/Reports/ResolvedByOwner.html:66 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1617 -msgid "Queue" -msgstr "表单" - -#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 -#. ($Queue) -#. ($id) -msgid "Queue %1 not found" -msgstr "找不到表单 %1" - -#: NOT FOUND IN SOURCE -msgid "Queue '%1' not found\\n" -msgstr "找不到表单 '%1'\\n" - -#: NOT FOUND IN SOURCE -msgid "Queue Keyword Selections" -msgstr "表单关键词选取" - -#: html/Admin/Queues/Modify.html:64 -msgid "Queue Name" -msgstr "表单名称" - -#: NOT FOUND IN SOURCE -msgid "Queue Owner" -msgstr "业务承办人" - -#: NOT FOUND IN SOURCE -msgid "Queue Priority" -msgstr "优先等级" - -#: NOT FOUND IN SOURCE -msgid "Queue Rights" -msgstr "表单权限" - -#: NOT FOUND IN SOURCE -msgid "Queue Scrips" -msgstr "表单手续" - -#: NOT FOUND IN SOURCE -msgid "Queue Setup" -msgstr "表单设定" - -#: lib/RT/Queue_Overlay.pm:365 -msgid "Queue already exists" -msgstr "表单已存在" - -#: lib/RT/Queue_Overlay.pm:374 lib/RT/Queue_Overlay.pm:380 -msgid "Queue could not be created" -msgstr "无法新增表单" - -#: html/Ticket/Create.html:244 lib/t/regression/01ticket_link_searching.t:17 -msgid "Queue could not be loaded." -msgstr "无法加载表单" - -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:384 lib/RT/StyleGuide.pod:809 -msgid "Queue created" -msgstr "表单新增完毕" - -#: NOT FOUND IN SOURCE -msgid "Queue is not specified." -msgstr "未指定表单。" - -#: html/SelfService/Display.html:126 lib/RT/CustomField_Overlay.pm:197 -msgid "Queue not found" -msgstr "找不到表单" - -#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 -msgid "Queues" -msgstr "表单" - -#: html/Elements/MyAdminQueues:46 -msgid "Queues I administer" -msgstr "由我管理的表单" - -#: html/Elements/MySupportQueues:46 -msgid "Queues I'm an AdminCc for" -msgstr "管理员副本有我的表单" - -#: NOT FOUND IN SOURCE -msgid "Quick Search" -msgstr "表单现况" - -#: html/Elements/Quicksearch:47 html/Prefs/Elements/Tabs:58 html/Prefs/Quicksearch.html:70 -msgid "Quick search" -msgstr "表单一览" - -#: html/Elements/QuickCreate:47 -msgid "Quick ticket creation" -msgstr "快速建立申请单" - -#: html/Search/Results.html:81 -msgid "RSS" -msgstr "RSS" - -#: NOT FOUND IN SOURCE -msgid "RT %1" -msgstr "RT %1" - -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:796 -#. ($RT::VERSION, $RT::rtname) -msgid "RT %1 for %2" -msgstr "%2:RT %1 版" - -#: NOT FOUND IN SOURCE -msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." -msgstr "RT %1 版,<a href=\"http://bestpractical.com\">Best Practical Solutions 公司</a>出品。" - -#: NOT FOUND IN SOURCE -msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" -msgstr "RT %1。版权所有 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" - -#: NOT FOUND IN SOURCE -msgid "RT %1. Copyright 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" -msgstr "RT %1。版权所有 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" - -#: html/Admin/index.html:46 html/Admin/index.html:47 -msgid "RT Administration" -msgstr "RT 管理页面" - -#: NOT FOUND IN SOURCE -msgid "RT Authentication error." -msgstr "RT 认证错误。" - -#: NOT FOUND IN SOURCE -msgid "RT Bounce: %1" -msgstr "RT 退信:%1" - -#: NOT FOUND IN SOURCE -msgid "RT Configuration error" -msgstr "RT 设定错误" - -#: NOT FOUND IN SOURCE -msgid "RT Critical error. Message not recorded!" -msgstr "RT 致命错误。讯息未被纪录。" - -#: html/Elements/Error:63 html/SelfService/Error.html:62 -msgid "RT Error" -msgstr "RT 错误" - -#: NOT FOUND IN SOURCE -msgid "RT Received mail (%1) from itself." -msgstr "RT 收到从自己寄出的邮件 (%1)。" - -#: NOT FOUND IN SOURCE -msgid "RT Recieved mail (%1) from itself." -msgstr "RT 收到从自己寄出的邮件 (%1)。" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "RT 自助服务" - -#: html/Admin/Tools/Configuration.html:73 -msgid "RT Variables" -msgstr "RT 的变数" - -#: html/Admin/Elements/SystemTabs:71 html/Admin/Elements/UserTabs:67 html/Admin/Global/MyRT.html:1 html/Admin/Global/MyRT.html:12 html/Admin/Global/MyRT.html:4 html/Admin/Global/index.html:84 html/Admin/Users/MyRT.html:21 html/Prefs/MyRT.html:66 html/Prefs/MyRT.html:78 html/User/Elements/Tabs:65 html/index.html:1 html/index.html:75 -msgid "RT at a glance" -msgstr "RT 一览" - -#: html/Admin/Users/MyRT.html:30 -#. ($UserObj->Name) -msgid "RT at a glance for the user %1" -msgstr "使用者 %1 的 RT 一览" - -#: html/Admin/CustomFields/Modify.html:117 -msgid "RT can include content from another web service when showing this custom field." -msgstr "RT 可于显示此自订字段时引入其它网站的内容" - -#: html/Admin/CustomFields/Modify.html:106 -msgid "RT can make this custom field's values into hyperlinks to another service." -msgstr "RT 可将此自订字段的值视为连往其它网站的超链接" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't authenticate you" -msgstr "RT 无法认证您的身份" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find requestor via its external database lookup" -msgstr "RT 无法从外部数据库查询找到申请人信息" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find the queue: %1" -msgstr "RT 找不到表单:%1" - -#: html/Elements/SetupSessionCookie:100 -msgid "RT couldn't store your session." -msgstr "RT 无法储存您的登入阶段。" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't validate this PGP signature. \\n" -msgstr "RT 无法确认这个 PGP 签章。\\n" - -#: html/Elements/Logo:49 html/Elements/PageLayout:172 -#. ($RT::rtname) -msgid "RT for %1" -msgstr "%1 专用流程系统" - -#: NOT FOUND IN SOURCE -msgid "RT for %1: %2" -msgstr "%1 专用 RT 系统:%2" - -#: NOT FOUND IN SOURCE -msgid "RT has proccessed your commands" -msgstr "RT 已执行您的命令" - -#: NOT FOUND IN SOURCE -msgid "RT is © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. It is distributed under <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 of the GNU General Public License.</a>" -msgstr "RT 版权所有 1996-%1 Jesse Vincent <jesse@bestpractical.com>。<br>本软体依 <a href=\"http://www.gnu.org/copyleft/gpl.html\">GNU 通用公共授权第二版</a> 散布。" - -#: NOT FOUND IN SOURCE -msgid "RT thinks this message may be a bounce" -msgstr "RT 认为这可能是退信" - -#: html/Search/Simple.html:58 -msgid "RT will look for anything else you enter in ticket subjects." -msgstr "RT 会在申请单主旨内搜寻将您键入的任何其它字样" - -#: NOT FOUND IN SOURCE -msgid "RT will process this message as if it were unsigned.\\n" -msgstr "RT 以未签章方式处理这封邮件。\\n" - -#: html/Admin/CustomFields/Modify.html:108 html/Admin/CustomFields/Modify.html:119 -msgid "RT will replace <tt>__id__</tt> and <tt>__CustomField__</tt> with the record id and custom field value, respectively" -msgstr "RT 会将 <tt>__id__</tt> 及 <tt>__CustomField__</tt> 置换成纪录编号及自订字段" - -#: NOT FOUND IN SOURCE -msgid "RT's email command mode requires PGP authentication. Either you didn't sign your message, or your signature could not be verified." -msgstr "RT 的电子邮件命令模式须要 PGP 认证。您可能没有签章,或是您的签章无法辨识。" - -#: NOT FOUND IN SOURCE -msgid "RT::Queue-Role" -msgstr "表单运行角色" - -#: NOT FOUND IN SOURCE -msgid "RT::System-Role" -msgstr "系统运行角色" - -#: NOT FOUND IN SOURCE -msgid "RT::Ticket-Role" -msgstr "申请单运行角色" - -#: NOT FOUND IN SOURCE -msgid "RT_System" -msgstr "系统讯息" - -#: NOT FOUND IN SOURCE -msgid "Read Only" -msgstr "只读" - -#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 -msgid "Real Name" -msgstr "真实姓名" - -#: NOT FOUND IN SOURCE -msgid "RealName" -msgstr "真实姓名" - -#: NOT FOUND IN SOURCE -msgid "Really reject this ticket?" -msgstr "您确定要驳回这张申请单吗?" - -#: lib/RT/Transaction_Overlay.pm:725 -#. ($value) -msgid "Reference by %1 added" -msgstr "已加入 %1 为参考本申请单" - -#: lib/RT/Transaction_Overlay.pm:765 -#. ($value) -msgid "Reference by %1 deleted" -msgstr "已移除 %1 为参考本申请单" - -#: lib/RT/Transaction_Overlay.pm:722 -#. ($value) -msgid "Reference to %1 added" -msgstr "已加入参考申请单 %1" - -#: lib/RT/Transaction_Overlay.pm:762 -#. ($value) -msgid "Reference to %1 deleted" -msgstr "已移除参考申请单 %1" - -#: html/Elements/EditLinks:103 html/Elements/EditLinks:156 html/Elements/ShowLinks:92 html/Ticket/Create.html:225 html/Ticket/Elements/BulkLinks:72 -msgid "Referred to by" -msgstr "被参考" - -#: html/Elements/EditLinks:152 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:224 html/Ticket/Elements/BulkLinks:68 -msgid "Refers to" -msgstr "参考" - -#: NOT FOUND IN SOURCE -msgid "RefersTo" -msgstr "参考" - -#: NOT FOUND IN SOURCE -msgid "Refine" -msgstr "在结果范围内查询" - -#: NOT FOUND IN SOURCE -msgid "Refine search" -msgstr "调整查询条件" - -#: NOT FOUND IN SOURCE -msgid "Refresh" -msgstr "更新" - -#: html/Elements/Refresh:57 -#. ($value/60) -msgid "Refresh this page every %1 minutes." -msgstr "每 %1 分钟更新页面" - -#: lib/RT/Transaction_Overlay.pm:811 -#. ($ticket->Subject) -msgid "Reminder '%1' added" -msgstr "已建立提醒项目‘%1’" - -#: lib/RT/Transaction_Overlay.pm:824 -#. ($ticket->Subject) -msgid "Reminder '%1' completed" -msgstr "已完成提醒项目‘%1’" - -#: lib/RT/Transaction_Overlay.pm:817 -#. ($ticket->Subject) -msgid "Reminder '%1' reopened" -msgstr "已重新开启提醒项目‘%1’" - -#: html/Ticket/Reminders.html:46 -#. ($Ticket->Id) -msgid "Reminder ticket #%1" -msgstr "提醒项目 #%1" - -#: html/Elements/MyReminders:48 html/Ticket/Elements/ShowSummary:75 html/Ticket/Elements/Tabs:122 html/Ticket/Reminders.html:52 -msgid "Reminders" -msgstr "提醒项目" - -#: html/Ticket/Reminders.html:50 -#. ($Ticket->Id) -msgid "Reminders for ticket #%1" -msgstr "申请单 #%1 的提醒项目" - -#: NOT FOUND IN SOURCE -msgid "Remove" -msgstr "移除" - -#: html/Search/Bulk.html:94 -msgid "Remove AdminCc" -msgstr "移除管理员副本" - -#: html/Search/Bulk.html:90 -msgid "Remove Cc" -msgstr "移除副本" - -#: html/Search/Bulk.html:86 -msgid "Remove Requestor" -msgstr "移除申请人" - -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:147 -msgid "Reply" -msgstr "回复" - -#: html/Admin/Queues/Modify.html:72 -msgid "Reply Address" -msgstr "回复地址" - -#: html/Search/Bulk.html:129 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:78 -msgid "Reply to requestors" -msgstr "回复申请人" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "Reply to tickets" -msgstr "对申请单进行回复" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "ReplyToTicket" -msgstr "回复申请单" - -#: NOT FOUND IN SOURCE -msgid "Report to Duty" -msgstr "上下班刷卡" - -#: NOT FOUND IN SOURCE -msgid "Reported on" -msgstr "到职日期" - -#: html/Tools/Elements/Tabs:59 html/Tools/Reports/index.html:46 html/Tools/Reports/index.html:47 -msgid "Reports" -msgstr "报表" - -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:111 -msgid "Requestor" -msgstr "申请人" - -#: NOT FOUND IN SOURCE -msgid "Requestor email address" -msgstr "申请人电子邮件信箱地址" - -#: NOT FOUND IN SOURCE -msgid "Requestor's" -msgstr "申请人所属之第上" - -#: NOT FOUND IN SOURCE -msgid "Requestor's Dept." -msgstr "申请人所属部门之" - -#: NOT FOUND IN SOURCE -msgid "Requestor's Phone" -msgstr "申请人电话" - -#: NOT FOUND IN SOURCE -msgid "Requestor(s)" -msgstr "申请人" - -#: NOT FOUND IN SOURCE -msgid "RequestorAddresses" -msgstr "申请人地址" - -#: html/SelfService/Create.html:63 html/Ticket/Create.html:80 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 -msgid "Requestors" -msgstr "申请人" - -#: html/Admin/Queues/Modify.html:96 -msgid "Requests should be due in" -msgstr "申请单处理期限" - -#: lib/RT/Attribute_Overlay.pm:146 -#. ('Object') -msgid "Required parameter '%1' not specified" -msgstr "未指定必要的参数‘%1’" - -#: html/Elements/Submit:83 -msgid "Reset" -msgstr "重设" - -#: html/Admin/Users/MyRT.html:15 html/Prefs/MyRT.html:60 -msgid "Reset to default" -msgstr "重设为预设值" - -#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:84 -msgid "Residence" -msgstr "住处" - -#: NOT FOUND IN SOURCE -msgid "Resolution" -msgstr "解决状态" - -#: html/Ticket/Elements/Tabs:156 -msgid "Resolve" -msgstr "解决" - -#: html/Ticket/Update.html:156 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Resolve ticket #%1 (%2)" -msgstr "解决申请单 #%1 (%2)" - -#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1172 -msgid "Resolved" -msgstr "已解决" - -#: html/Tools/Reports/Elements/Tabs:55 -msgid "Resolved by owner" -msgstr "已由承办人解决" - -#: html/Tools/Reports/Elements/Tabs:59 -msgid "Resolved in date range" -msgstr "已在指定日期内解决" - -#: html/Tools/Reports/ResolvedByDates.html:52 -msgid "Resolved tickets in period, grouped by owner" -msgstr "已在指定日期内内解决,依承办人分组" - -#: html/Tools/Reports/ResolvedByOwner.html:50 -msgid "Resolved tickets, grouped by owner" -msgstr "已解决的申请单,依承办人分组" - -#: NOT FOUND IN SOURCE -msgid "Response to requestors" -msgstr "回复申请人" - -#: NOT FOUND IN SOURCE -msgid "Responsibility Type" -msgstr "责任区分" - -#: html/Elements/ListActions:46 html/Search/Elements/NewListActions:47 -msgid "Results" -msgstr "结果" - -#: NOT FOUND IN SOURCE -msgid "Results per page" -msgstr "每页列出几笔结果" - -#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 -msgid "Retype Password" -msgstr "再次输入口令" - -#: html/Search/Elements/EditSearches:61 -msgid "Revert" -msgstr "复原" - -#: NOT FOUND IN SOURCE -msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" -msgstr "在 %4 (%5) 的范围内找不到 %2 %3 的 %1 权限\\n" - -#: lib/RT/ACE_Overlay.pm:630 -msgid "Right Delegated" -msgstr "权限代理完毕" - -#: lib/RT/ACE_Overlay.pm:320 -msgid "Right Granted" -msgstr "权限设定完毕" - -#: lib/RT/ACE_Overlay.pm:178 -msgid "Right Loaded" -msgstr "权限加载完毕" - -#: lib/RT/ACE_Overlay.pm:695 lib/RT/ACE_Overlay.pm:716 -msgid "Right could not be revoked" -msgstr "无法撤消权限" - -#: html/User/Delegation.html:85 -msgid "Right not found" -msgstr "找不到权限" - -#: lib/RT/ACE_Overlay.pm:560 lib/RT/ACE_Overlay.pm:655 -msgid "Right not loaded." -msgstr "权限并未加载。" - -#: lib/RT/ACE_Overlay.pm:712 -msgid "Right revoked" -msgstr "权限撤消完毕" - -#: html/Admin/Elements/UserTabs:70 -msgid "Rights" -msgstr "权限及代理人" - -#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:961 -#. ($object_type) -msgid "Rights could not be granted for %1" -msgstr "无法将权限赋予 %1" - -#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:990 -#. ($object_type) -msgid "Rights could not be revoked for %1" -msgstr "无法撤消 %1 的权限" - -#: NOT FOUND IN SOURCE -msgid "Role Members" -msgstr "角色成员" - -#: NOT FOUND IN SOURCE -msgid "Role Name" -msgstr "角色名称" - -#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 -msgid "Roles" -msgstr "角色" - -#: NOT FOUND IN SOURCE -msgid "RootApproval" -msgstr "交由系统管理员签核" - -#: html/Prefs/MyRT.html:72 -msgid "Rows per box" -msgstr "每格笔数" - -#: html/Search/Elements/DisplayOptions:93 -msgid "Rows per page" -msgstr "每页笔数" - -#: NOT FOUND IN SOURCE -msgid "Run Approval" -msgstr "签核执行" - -#: NOT FOUND IN SOURCE -msgid "SMTPDebug" -msgstr "SMTP 侦错纪录" - -#: NOT FOUND IN SOURCE -msgid "SMTPFrom" -msgstr "SMTP 寄件地址" - -#: NOT FOUND IN SOURCE -msgid "SMTPServer" -msgstr "SMTP 服务器" - -#: NOT FOUND IN SOURCE -msgid "Sat" -msgstr "星期六" - -#: lib/RT/Date.pm:422 -msgid "Sat." -msgstr "星期六" - -#: html/Prefs/MyRT.html:72 html/Prefs/Quicksearch.html:64 html/Prefs/Search.html:69 html/Prefs/Search.html:69 html/Search/Elements/EditSearches:70 html/Widgets/SelectionBox:211 -msgid "Save" -msgstr "储存" - -#: html/Admin/Global/Template.html:67 html/Admin/Groups/Modify.html:88 html/Admin/Queues/Modify.html:111 html/Admin/Queues/People.html:126 html/Admin/Users/Modify.html:239 html/Prefs/Quicksearch.html:64 html/Prefs/SearchOptions.html:63 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:61 html/Ticket/ModifyPeople.html:60 html/User/Groups/Modify.html:77 -msgid "Save Changes" -msgstr "储存更改" - -#: html/User/Prefs.html:181 -msgid "Save Preferences" -msgstr "储存偏好" - -#: html/Ticket/Elements/PreviewScrips:131 -msgid "Save changes" -msgstr "储存更改" - -#: lib/RT/SavedSearch.pm:173 -#. ($name) -msgid "Saved search %1" -msgstr "成功储存查询:%1" - -#: NOT FOUND IN SOURCE -msgid "Saved searches" -msgstr "预存查询" - -#: html/Admin/Elements/ListGlobalScrips:60 html/Admin/Global/Scrip.html:77 html/Admin/Queues/Scrip.html:84 -#. ($scrip->Id) -#. ($id) -msgid "Scrip #%1" -msgstr "手续 #%1" - -#: NOT FOUND IN SOURCE -msgid "Scrip Action" -msgstr "讯息通知动作" - -#: NOT FOUND IN SOURCE -msgid "Scrip Condition" -msgstr "讯息通知条件" - -#: lib/RT/Scrip_Overlay.pm:203 -msgid "Scrip Created" -msgstr "手续新增完毕" - -#: html/Admin/Elements/EditScrip:52 -msgid "Scrip Fields" -msgstr "手续字段" - -#: NOT FOUND IN SOURCE -msgid "Scrip Name" -msgstr "讯息名称" - -#: html/Admin/Elements/EditScrips:109 -msgid "Scrip deleted" -msgstr "手续删除完毕" - -#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 -msgid "Scrips" -msgstr "手续" - -#: NOT FOUND IN SOURCE -msgid "Scrips " -msgstr "讯息通知" - -#: NOT FOUND IN SOURCE -msgid "Scrips for %1\\n" -msgstr "%1 的手续\\n" - -#: html/Admin/Queues/Scrips.html:55 -msgid "Scrips which apply to all queues" -msgstr "适用于所有表单的手续" - -#: html/Elements/SimpleSearch:48 html/Search/Simple.html:63 -msgid "Search" -msgstr "查询" - -#: NOT FOUND IN SOURCE -msgid "Search Criteria" -msgstr "查询条件" - -#: html/Prefs/SearchOptions.html:47 html/Prefs/SearchOptions.html:50 -msgid "Search Preferences" -msgstr "搜寻偏好" - -#: lib/RT/SavedSearch.pm:115 -msgid "Search attribute load failure" -msgstr "搜寻属性加载失败" - -#: html/Approvals/Elements/PendingMyApproval:59 -msgid "Search for approvals" -msgstr "签核单查询" - -#: html/Search/Simple.html:67 -msgid "Search for tickets" -msgstr "申请单查询" - -#: html/Search/Simple.html:55 -msgid "Search for tickets. Enter <strong>id</strong> numbers, <strong>queues</strong> by name, Owners by <strong>username</strong> and Requestors by <strong>email address</strong>. RT will look for anything else you enter in ticket bodies and attachments." -msgstr "搜寻申请单。请键入<strong>编号</strong>、<strong>表单名称</strong>、承办人的<strong>使用者名称</strong>、或申请人的<strong>电子邮件地址</strong>。以上格式之外的文字,则会在申请单内文及附件内检索。" - -#: html/User/Elements/Tabs:62 -msgid "Search options" -msgstr "搜寻选项" - -#: html/Search/Chart.html:56 -#. ($PrimaryGroupBy) -msgid "Search results grouped by %1" -msgstr "搜寻结果,依 %1 分组" - -#: lib/RT/SavedSearch.pm:203 -#. ($msg) -msgid "Search update: %1" -msgstr "更新查询:%1" - -#: NOT FOUND IN SOURCE -msgid "Searches can't be associated with that kind of object" -msgstr "不能对此类对象进行查询" - -#: html/Search/Simple.html:57 -msgid "Searching the full text of every ticket can take a long time, but if you need to do it, you can search for any word in full ticket history for any word by typing <b>fulltext:<i>word</i></b>." -msgstr "对所有申请单的全文进行检索,可能会需要很久的时间。但如果您真的有需要,可键入 <b>fulltext:<i>文字</i></b> 来搜寻申请单的所有纪录。" - -#: NOT FOUND IN SOURCE -msgid "Second-" -msgstr "二" - -#: NOT FOUND IN SOURCE -msgid "Second-level Users" -msgstr "二阶主管员工" - -#: bin/rt-crontool:265 -msgid "Security:" -msgstr "安全性:" - -#: html/Elements/ShowCustomFields:98 -msgid "See also:" -msgstr "参见:" - -#: lib/RT/CustomField_Overlay.pm:105 -msgid "See custom fields" -msgstr "查阅自订字段" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "See exact outgoing email messages and their recipeients" -msgstr "查阅送出的电子邮件及收件人" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "See ticket private commentary" -msgstr "查阅申请单内的私人评论" - -#: lib/RT/Queue_Overlay.pm:103 -msgid "See ticket summaries" -msgstr "查阅申请单总览" - -#: lib/RT/CustomField_Overlay.pm:105 -msgid "SeeCustomField" -msgstr "查阅自订字段" - -#: lib/RT/Group_Overlay.pm:169 -msgid "SeeGroup" -msgstr "查阅群组" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "SeeQueue" -msgstr "查阅表单" - -#: NOT FOUND IN SOURCE -msgid "Select" -msgstr "选择" - -#: NOT FOUND IN SOURCE -msgid "Select All" -msgstr "全选" - -#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 -msgid "Select a Custom Field" -msgstr "选择自订字段" - -#: html/Admin/Groups/index.html:78 -msgid "Select a group" -msgstr "选择群组" - -#: html/Admin/Queues/index.html:54 -msgid "Select a queue" -msgstr "选择表单" - -#: html/SelfService/CreateTicketInQueue.html:48 -msgid "Select a queue for your new ticket" -msgstr "为您新的申请单选择一个表单" - -#: NOT FOUND IN SOURCE -msgid "Select a queue to link to" -msgstr "请选择欲连结表单" - -#: html/Admin/Users/index.html:46 html/Admin/Users/index.html:49 html/Admin/Users/index.html:52 -msgid "Select a user" -msgstr "选择使用者" - -#: html/Admin/Elements/CustomFieldTabs:90 -msgid "Select custom field" -msgstr "选择自订字段" - -#: html/Admin/Global/CustomFields/index.html:70 -msgid "Select custom fields for all user groups" -msgstr "选择适用于所有使用者群组的自订字段" - -#: html/Admin/Global/CustomFields/index.html:65 -msgid "Select custom fields for all users" -msgstr "选择适用于所有使用者的自订字段" - -#: html/Admin/Global/CustomFields/index.html:76 -msgid "Select custom fields for tickets in all queues" -msgstr "选择适用于所有表单内申请单的自订字段" - -#: html/Admin/Global/CustomFields/index.html:83 -msgid "Select custom fields for transactions on tickets in all queues" -msgstr "选择适用于所有表单内申请单之更动的自订字段" - -#: html/Admin/Elements/GroupTabs:75 html/User/Elements/GroupTabs:71 -msgid "Select group" -msgstr "选择群组" - -#: lib/RT/CustomField_Overlay.pm:59 -msgid "Select multiple values" -msgstr "选择多重项目" - -#: lib/RT/CustomField_Overlay.pm:60 -msgid "Select one value" -msgstr "选择单一项目" - -#: html/Admin/Elements/QueueTabs:92 -msgid "Select queue" -msgstr "选择表单" - -#: html/Prefs/Quicksearch.html:53 -msgid "Select queues to be displayed on the \"RT at a glance\" page" -msgstr "选择要在‘RT 一览’页面显示的表单" - -#: html/Admin/Global/Scrip.html:59 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:67 html/Admin/Queues/Scrips.html:73 -msgid "Select scrip" -msgstr "选择手续" - -#: html/Admin/Global/Template.html:78 html/Admin/Global/Templates.html:57 html/Admin/Queues/Template.html:76 html/Admin/Queues/Templates.html:68 -msgid "Select template" -msgstr "选择模板" - -#: lib/RT/CustomField_Overlay.pm:61 -msgid "Select up to %1 values" -msgstr "选择最多 %1 个值" - -#: html/Admin/Elements/UserTabs:78 -msgid "Select user" -msgstr "选择使用者" - -#: NOT FOUND IN SOURCE -msgid "Select workflow" -msgstr "选择流程" - -#: NOT FOUND IN SOURCE -msgid "SelectExternal" -msgstr "系统选项" - -#: NOT FOUND IN SOURCE -msgid "SelectMultiple" -msgstr "多重选项" - -#: NOT FOUND IN SOURCE -msgid "SelectSingle" -msgstr "单一选项" - -#: html/Admin/Elements/EditCustomFields:58 -msgid "Selected Custom Fields" -msgstr "已选取的自订字段" - -#: html/Admin/CustomFields/Objects.html:59 -msgid "Selected objects" -msgstr "已选取的对象" - -#: NOT FOUND IN SOURCE -msgid "Selected users:" -msgstr "已选取的使用者:" - -#: html/Widgets/SelectionBox:209 -msgid "Selections modified. Please save your changes" -msgstr "选取的项目已更改。请储存您的更动" - -#: NOT FOUND IN SOURCE -msgid "Self Service" -msgstr "自助服务" - -#: etc/initialdata:121 -msgid "Send mail to all watchers" -msgstr "寄信给所有视察员" - -#: etc/initialdata:117 -msgid "Send mail to all watchers as a \"comment\"" -msgstr "以评论方式寄信给所有视察员" - -#: etc/initialdata:112 -msgid "Send mail to requestors and Ccs" -msgstr "寄信给申请人及副本收件人" - -#: etc/initialdata:107 -msgid "Send mail to requestors and Ccs as a comment" -msgstr "以评论方式寄信给申请人及副本收件人" - -#: etc/initialdata:78 -msgid "Sends a message to the requestors" -msgstr "寄信给申请人" - -#: etc/initialdata:125 etc/initialdata:129 -msgid "Sends mail to explicitly listed Ccs and Bccs" -msgstr "寄信给特定的副本及密件副本收件人" - -#: etc/initialdata:94 etc/upgrade/3.1.17/content:7 -msgid "Sends mail to the Ccs" -msgstr "寄信给副本收件人" - -#: etc/initialdata:90 etc/upgrade/3.1.17/content:3 -msgid "Sends mail to the Ccs as a comment" -msgstr "以评论方式寄信给副本收件人" - -#: etc/initialdata:102 -msgid "Sends mail to the administrative Ccs" -msgstr "寄信给管理员副本收件人" - -#: etc/initialdata:98 -msgid "Sends mail to the administrative Ccs as a comment" -msgstr "以评论寄信给管理员副本收件人" - -#: etc/initialdata:82 etc/initialdata:86 -msgid "Sends mail to the owner" -msgstr "寄信给申请人" - -#: NOT FOUND IN SOURCE -msgid "Sep" -msgstr "九月" - -#: lib/RT/Date.pm:449 -msgid "Sep." -msgstr "09" - -#: NOT FOUND IN SOURCE -msgid "September" -msgstr "九月" - -#: NOT FOUND IN SOURCE -msgid "Setting %1's 'Disabled' property to %2" -msgstr "%1 的‘停用’属性已设为 %2" - -#: NOT FOUND IN SOURCE -msgid "Shift Type" -msgstr "班别属性" - -#: html/Ticket/Elements/ShowTransaction:158 -msgid "Show" -msgstr "显示" - -#: html/Approvals/index.html:52 -msgid "Show Approvals" -msgstr "显示待签核申请单" - -#: html/Search/Elements/EditFormat:56 -msgid "Show Columns" -msgstr "显示字段" - -#: html/Ticket/Elements/Tabs:220 -msgid "Show Results" -msgstr "显示结果" - -#: html/Approvals/Elements/PendingMyApproval:64 -msgid "Show approved requests" -msgstr "显示已批准的签核单" - -#: html/Ticket/Create.html:316 -msgid "Show basics" -msgstr "显示基本信息" - -#: html/Approvals/Elements/PendingMyApproval:65 -msgid "Show denied requests" -msgstr "显示已驳回的签核单" - -#: html/Ticket/Create.html:319 -msgid "Show details" -msgstr "显示细节" - -#: html/Approvals/Elements/PendingMyApproval:63 -msgid "Show pending requests" -msgstr "显示待处理的签核单" - -#: html/Approvals/Elements/PendingMyApproval:66 -msgid "Show requests awaiting other approvals" -msgstr "显示尚待他人批准的签核单" - -#: NOT FOUND IN SOURCE -msgid "Show ticket private commentary" -msgstr "显示申请单内的私人评论" - -#: NOT FOUND IN SOURCE -msgid "Show ticket summaries" -msgstr "显示申请单摘要" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "ShowACL" -msgstr "显示权限清单" - -#: lib/RT/System.pm:85 -msgid "ShowConfigTab" -msgstr "显示设定页签" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "ShowOutgoingEmail" -msgstr "显示寄送邮件" - -#: lib/RT/Group_Overlay.pm:168 -msgid "ShowSavedSearches" -msgstr "显示预存查询" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "ShowScrips" -msgstr "显示手续" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "ShowTemplate" -msgstr "显示模板" - -#: lib/RT/Queue_Overlay.pm:103 -msgid "ShowTicket" -msgstr "显示申请单" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "ShowTicketComments" -msgstr "显示申请单的评论" - -#: lib/RT/Queue_Overlay.pm:107 -msgid "Sign up as a ticket Requestor or ticket or queue Cc" -msgstr "登记成为申请人或副本收件人" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "Sign up as a ticket or queue AdminCc" -msgstr "登记成为管理员副本收件人" - -#: html/Admin/Users/Modify.html:230 html/User/Prefs.html:168 -msgid "Signature" -msgstr "签名档" - -#: NOT FOUND IN SOURCE -msgid "Signed in as %1" -msgstr "使用者:%1" - -#: html/Elements/Tabs:68 -msgid "Simple Search" -msgstr "简易查询" - -#: html/Admin/Elements/SelectSingleOrMultiple:47 -msgid "Single" -msgstr "单一" - -#: html/Search/Elements/EditFormat:75 -msgid "Size" -msgstr "大小" - -#: html/Elements/Header:89 -msgid "Skip Menu" -msgstr "略过选单" - -#: html/Search/Elements/EditFormat:78 -msgid "Small" -msgstr "小" - -#: html/Admin/CustomFields/Modify.html:120 -msgid "Some browsers may only load content from the same domain as your RT server." -msgstr "某些浏览器只允许加载和 RT 服务器同一个网域的内容。" - -#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 -msgid "Sort" -msgstr "顺序" - -#: NOT FOUND IN SOURCE -msgid "Sort key" -msgstr "排序方式" - -#: NOT FOUND IN SOURCE -msgid "Sort results by" -msgstr "结果排序方式" - -#: NOT FOUND IN SOURCE -msgid "SortOrder" -msgstr "排序顺序" - -#: html/Admin/Elements/EditScrip:78 -msgid "Stage" -msgstr "关卡" - -#: NOT FOUND IN SOURCE -msgid "Stage Action" -msgstr "关卡运行动作" - -#: NOT FOUND IN SOURCE -msgid "Stage Condition" -msgstr "关卡运行条件" - -#: NOT FOUND IN SOURCE -msgid "Stalled" -msgstr "延宕" - -#: NOT FOUND IN SOURCE -msgid "Start page" -msgstr "首页" - -#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 -msgid "Started" -msgstr "实际起始日" - -#: NOT FOUND IN SOURCE -msgid "Started date '%1' could not be parsed" -msgstr "无法解读起始日期 '%1" - -#: html/Elements/SelectDateType:52 html/Ticket/Create.html:208 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 -msgid "Starts" -msgstr "应起始日" - -msgid "StartsRelative" -msgstr "应起始日(相对值)" - -msgid "StartedRelative" -msgstr "实际起始日(相对值)" - -msgid "CreatedRelative" -msgstr "实际新增日(相对值)" - -msgid "LastUpdatedRelative" -msgstr "上次更新(相对值)" - -msgid "ToldRelative" -msgstr "告知日(相对值)" - -msgid "DueRelative" -msgstr "到期日(相对值)" - -msgid "ResolvedRelative" -msgstr "解决日(相对值)" - -msgid "ReferredToBy" -msgstr "被参考" - -msgid "DependedOnBy" -msgstr "可接续处理" - -#: NOT FOUND IN SOURCE -msgid "Starts By" -msgstr "应起始日" - -#: NOT FOUND IN SOURCE -msgid "Starts date '%1' could not be parsed" -msgstr "无法解读起始日期 '%1" - -#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 -msgid "State" -msgstr "州" - -#: html/Search/Elements/PickBasics:87 html/SelfService/Update.html:57 html/Ticket/Create.html:66 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:1651 -msgid "Status" -msgstr "现况" - -msgid "ExtendedStatus" -msgstr "额外现况" - -#: etc/initialdata:309 -msgid "Status Change" -msgstr "现况改变时" - -#: NOT FOUND IN SOURCE -msgid "Status changed from %1 to %2" -msgstr "现况从 %1 改为 %2" - -#: NOT FOUND IN SOURCE -msgid "StatusChange" -msgstr "现况改变时" - -#: html/Ticket/Elements/Tabs:178 -msgid "Steal" -msgstr "强制更换承办人" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "Steal tickets" -msgstr "强制承办申请单" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "StealTicket" -msgstr "强制承办申请单" - -#: lib/RT/Transaction_Overlay.pm:678 -#. ($Old->Name) -msgid "Stolen from %1" -msgstr "承办人从 %1 强制更换" - -#: NOT FOUND IN SOURCE -msgid "Stolen from %1 " -msgstr "承办人从 %1 强制更换 " - -#: html/Search/Elements/EditFormat:81 -msgid "Style" -msgstr "样式" - -#: NOT FOUND IN SOURCE -msgid "Subgroup" -msgstr "子群组" - -#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:132 html/SelfService/Create.html:79 html/SelfService/Update.html:65 html/Ticket/Create.html:108 html/Ticket/Elements/EditBasics:48 html/Ticket/Elements/Reminders:125 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:82 lib/RT/Ticket_Overlay.pm:1162 lib/RT/Tickets_Overlay.pm:1733 -msgid "Subject" -msgstr "主题" - -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:700 -#. ($self->Data) -msgid "Subject changed to %1" -msgstr "标题已改为 %1" - -#: html/Elements/Submit:75 -msgid "Submit" -msgstr "送出" - -#: NOT FOUND IN SOURCE -msgid "Submit Workflow" -msgstr "送出流程" - -#: lib/RT/Group_Overlay.pm:774 -msgid "Succeeded" -msgstr "设定成功" - -#: NOT FOUND IN SOURCE -msgid "Sun" -msgstr "星期日" - -#: lib/RT/Date.pm:423 -msgid "Sun." -msgstr "星期日" - -#: lib/RT/System.pm:75 -msgid "SuperUser" -msgstr "系统管理员" - -#: NOT FOUND IN SOURCE -msgid "Sync now" -msgstr "执行同步" - -#: NOT FOUND IN SOURCE -msgid "Sync104HRMS" -msgstr "自动同步104HRMS" - -#: NOT FOUND IN SOURCE -msgid "Synchronizing HRMS data. This may take a while..." -msgstr "正在同步化 HRMS 人事系统数据。请稍待..." - -#: html/User/Elements/DelegateRights:98 -msgid "System" -msgstr "系统" - -#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 -msgid "System Configuration" -msgstr "系统设定" - -#: NOT FOUND IN SOURCE -msgid "System Defined" -msgstr "系统定义" - -#: html/Admin/CustomFields/GroupRights.html:128 html/Admin/CustomFields/GroupRights.html:155 html/Admin/CustomFields/UserRights.html:128 html/Admin/CustomFields/UserRights.html:98 html/Admin/Elements/SelectRights:106 lib/RT/ACE_Overlay.pm:584 lib/RT/Interface/Web.pm:960 lib/RT/Interface/Web.pm:989 -msgid "System Error" -msgstr "系统错误" - -#: NOT FOUND IN SOURCE -msgid "System Error. Right not granted." -msgstr "系统错误。设定权限失败。" - -#: NOT FOUND IN SOURCE -msgid "System Error. right not granted" -msgstr "系统错误。设定权限失败。" - -#: lib/RT/Transaction_Overlay.pm:224 lib/RT/Transaction_Overlay.pm:230 -#. ($msg) -msgid "System Error: %1" -msgstr "系统错误:%1" - -#: NOT FOUND IN SOURCE -msgid "System Rights" -msgstr "系统权限" - -#: html/Admin/Tools/index.html:47 -msgid "System Tools" -msgstr "系统工具" - -#: lib/RT/ACE_Overlay.pm:633 -msgid "System error. Right not delegated." -msgstr "系统错误。权限代理失败。" - -#: lib/RT/ACE_Overlay.pm:163 lib/RT/ACE_Overlay.pm:228 lib/RT/ACE_Overlay.pm:323 lib/RT/ACE_Overlay.pm:920 -msgid "System error. Right not granted." -msgstr "系统错误。设定权限失败。" - -#: NOT FOUND IN SOURCE -msgid "System error. Unable to grant rights." -msgstr "系统错误。无法设定权限。" - -#: html/Admin/CustomFields/GroupRights.html:58 html/Admin/Global/GroupRights.html:56 html/Admin/Groups/GroupRights.html:58 html/Admin/Queues/GroupRights.html:57 -msgid "System groups" -msgstr "系统群组" - -#: NOT FOUND IN SOURCE -msgid "SystemInternal" -msgstr "系统内部用" - -#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 -msgid "SystemRolegroup for internal use" -msgstr "内部使用的系统角色群组" - -#: lib/RT/CurrentUser.pm:357 -msgid "TEST_STRING" -msgstr "TEST_STRING" - -#: NOT FOUND IN SOURCE -msgid "TabbedUI" -msgstr "页签接口" - -#: etc/initialdata:603 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:170 -msgid "Take" -msgstr "受理" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "Take tickets" -msgstr "自行承办申请单" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "TakeTicket" -msgstr "自行承办申请单" - -#: lib/RT/Transaction_Overlay.pm:663 -msgid "Taken" -msgstr "已受理" - -#: NOT FOUND IN SOURCE -msgid "Task" -msgstr "工作事项" - -#: html/Admin/Elements/EditScrip:71 html/Tools/Offline.html:78 -msgid "Template" -msgstr "模板" - -#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 -#. ($TemplateObj->Id()) -msgid "Template #%1" -msgstr "模板 #%1" - -#: NOT FOUND IN SOURCE -msgid "Template Content" -msgstr "通知模板内容" - -#: NOT FOUND IN SOURCE -msgid "Template Description" -msgstr "通知模板描述" - -#: NOT FOUND IN SOURCE -msgid "Template Name" -msgstr "通知模板名称" - -#: html/Admin/Elements/EditTemplates:110 -msgid "Template deleted" -msgstr "模板已删除" - -#: lib/RT/Scrip_Overlay.pm:176 -msgid "Template is mandatory argument" -msgstr "模板是必填字段" - -#: lib/RT/Scrip_Overlay.pm:180 -msgid "Template not found" -msgstr "找不到模板" - -#: NOT FOUND IN SOURCE -msgid "Template not found\\n" -msgstr "找不到模板\\n" - -#: lib/RT/Template_Overlay.pm:343 -msgid "Template parsed" -msgstr "模板剖析完毕" - -#: lib/RT/Template_Overlay.pm:391 -msgid "Template parsing error" -msgstr "模板剖析错误" - -#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 -msgid "Templates" -msgstr "模板" - -#: NOT FOUND IN SOURCE -msgid "Templates " -msgstr "通知模板" - -#: NOT FOUND IN SOURCE -msgid "Templates for %1\\n" -msgstr "找不到 %1 的模板\\n" - -#: NOT FOUND IN SOURCE -msgid "Text" -msgstr "文字" - -#: lib/RT/CustomField_Overlay.pm:943 lib/RT/Record.pm:945 -msgid "That is already the current value" -msgstr "已经是目前字段的值" - -#: lib/RT/CustomField_Overlay.pm:412 -msgid "That is not a value for this custom field" -msgstr "这不是该自订字段的值" - -#: lib/RT/Ticket_Overlay.pm:1994 -msgid "That is the same value" -msgstr "同样的值" - -#: lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:614 -msgid "That principal already has that right" -msgstr "这项单位已经拥有该权限" - -#: lib/RT/Queue_Overlay.pm:753 -#. ($args{'Type'}) -msgid "That principal is already a %1 for this queue" -msgstr "这项单位已经是这个表单的 %1" - -#: lib/RT/Ticket_Overlay.pm:1435 -#. ($self->loc($args{'Type'})) -msgid "That principal is already a %1 for this ticket" -msgstr "这项单位已经是这份申请单的 %1" - -#: lib/RT/Queue_Overlay.pm:852 -#. ($args{'Type'}) -msgid "That principal is not a %1 for this queue" -msgstr "这项单位不是这个表单的 %1" - -#: NOT FOUND IN SOURCE -msgid "That principal is not a %1 for this ticket" -msgstr "这项单位不是这份申请单的 %1" - -#: lib/RT/Ticket_Overlay.pm:1990 -msgid "That queue does not exist" -msgstr "此表单不存在" - -#: lib/RT/Ticket_Overlay.pm:3233 -msgid "That ticket has unresolved dependencies" -msgstr "这份申请单有尚未解决的附属申请单" - -#: NOT FOUND IN SOURCE -msgid "That user already has that right" -msgstr "使用者已具有该项权限" - -#: lib/RT/Action/CreateTickets.pm:710 lib/RT/Ticket_Overlay.pm:3037 -msgid "That user already owns that ticket" -msgstr "该使用者已经承办这份申请单" - -#: lib/RT/Ticket_Overlay.pm:3012 -msgid "That user does not exist" -msgstr "使用者不存在" - -#: lib/RT/User_Overlay.pm:389 -msgid "That user is already privileged" -msgstr "这名使用者已经是内部成员" - -#: lib/RT/User_Overlay.pm:410 -msgid "That user is already unprivileged" -msgstr "这名使用者属于非内部成员群组" - -#: lib/RT/User_Overlay.pm:402 -msgid "That user is now privileged" -msgstr "使用者加入内部成员群组完毕" - -#: lib/RT/User_Overlay.pm:423 -msgid "That user is now unprivileged" -msgstr "这名使用者已加入非内部成员群组" - -#: NOT FOUND IN SOURCE -msgid "That user is now unprivilegedileged" -msgstr "这名使用者已加入非内部成员群组" - -#: lib/RT/Ticket_Overlay.pm:3031 -msgid "That user may not own tickets in that queue" -msgstr "使用者可能没有承办表单里的申请单" - -#: lib/RT/Link_Overlay.pm:233 -msgid "That's not a numerical id" -msgstr "这不是一个数字编号" - -#: html/SelfService/Display.html:53 html/Ticket/Create.html:177 html/Ticket/Elements/ShowSummary:49 -msgid "The Basics" -msgstr "基本信息" - -#: lib/RT/ACE_Overlay.pm:112 -msgid "The CC of a ticket" -msgstr "申请单的副本收件人" - -#: lib/RT/ACE_Overlay.pm:113 -msgid "The administrative CC of a ticket" -msgstr "申请单的管理员副本收件人" - -#: NOT FOUND IN SOURCE -msgid "The comment has been recorded" -msgstr "评论已被纪录" - -#: bin/rt-crontool:275 -msgid "The following command will find all active tickets in the queue 'general' and set their priority to 99 if they haven't been touched in 4 hours:" -msgstr "下列命令会找到 'general' 表单内所有运作中的申请单,并将其中 4 小时内未处理的申请单优先程度设为 99:" - -#: NOT FOUND IN SOURCE -msgid "The following commands were not proccessed:\\n\\n" -msgstr "以下命令未被执行:\\n\\n" - -#: lib/RT/Record.pm:948 -msgid "The new value has been set." -msgstr "新的字段值设定完成。" - -#: lib/RT/ACE_Overlay.pm:110 -msgid "The owner of a ticket" -msgstr "申请单的承办人" - -#: lib/RT/ACE_Overlay.pm:111 -msgid "The requestor of a ticket" -msgstr "申请单的申请人" - -#: html/Admin/Elements/EditUserComments:47 -msgid "These comments aren't generally visible to the user" -msgstr "该使用者不会看见这些评论" - -#: NOT FOUND IN SOURCE -msgid "Third-" -msgstr "三" - -#: lib/RT/CustomField_Overlay.pm:978 -msgid "This custom field does not apply to that object" -msgstr "此自订字段不适用于该对象" - -#: html/Admin/Tools/Configuration.html:50 -msgid "This feature is only available to system administrators" -msgstr "此项功能仅限系统管理员使用" - -#: html/Ticket/Elements/PreviewScrips:96 -msgid "This message will be sent to..." -msgstr "此讯息会寄给..." - -#: NOT FOUND IN SOURCE -msgid "This ticket %1 %2 (%3)\\n" -msgstr "申请单 %1 %2 (%3)\\n" - -#: bin/rt-crontool:266 -msgid "This tool allows the user to run arbitrary perl modules from within RT." -msgstr "此工具程序会让使用者经由 RT 执行任意命令。" - -#: lib/RT/Transaction_Overlay.pm:301 -msgid "This transaction appears to have no content" -msgstr "此项更动报告没有内容" - -#: html/Ticket/Elements/ShowRequestor:70 -#. ($rows) -msgid "This user's %1 highest priority tickets" -msgstr "使用者送出的前 %1 份优先处理申请单" - -#: NOT FOUND IN SOURCE -msgid "This user's 25 highest priority tickets" -msgstr "使用者送出的前 25 份优先处理申请单" - -#: NOT FOUND IN SOURCE -msgid "Thu" -msgstr "星期四" - -#: lib/RT/Date.pm:420 -msgid "Thu." -msgstr "星期四" - -#: NOT FOUND IN SOURCE -msgid "Ticket" -msgstr "申请单" - -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 %2" -msgstr "申请单 # %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 Jumbo update: %2" -msgstr "更新申请单 # %1 的全部信息:%2" - -#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket #%1 Jumbo update: %2" -msgstr "更新申请单 #%1 的全部信息:%2" - -#: html/Approvals/Elements/ShowDependency:67 -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Ticket #%1: %2" -msgstr "申请单 #%1: %2" - -#: lib/RT/Action/CreateTickets.pm:1350 lib/RT/Action/CreateTickets.pm:1359 lib/RT/Action/CreateTickets.pm:605 lib/RT/Action/CreateTickets.pm:729 lib/RT/Action/CreateTickets.pm:741 -#. ($T::Tickets{$template_id}->Id) -#. ($T::Tickets{$template_id}->id) -#. ($ticket->Id) -msgid "Ticket %1" -msgstr "申请单 %1" - -#: lib/RT/Ticket_Overlay.pm:755 lib/RT/Ticket_Overlay.pm:775 -#. ($self->Id, $QueueObj->Name) -msgid "Ticket %1 created in queue '%2'" -msgstr "申请单 #%1 成功新增于 '%2' 表单" - -#: NOT FOUND IN SOURCE -msgid "Ticket %1 loaded\\n" -msgstr "加载申请单 %1\\n" - -#: html/Search/Bulk.html:377 -#. ($Ticket->Id, $_) -msgid "Ticket %1: %2" -msgstr "申请单 %1:%2" - -#: html/Admin/Elements/QueueTabs:74 -msgid "Ticket Custom Fields" -msgstr "申请单的自订字段" - -#: NOT FOUND IN SOURCE -msgid "Ticket Due" -msgstr "表单处理期限" - -#: html/Ticket/History.html:46 html/Ticket/History.html:49 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket History # %1 %2" -msgstr "申请单处理纪录 # %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Ticket ID" -msgstr "单号" - -#: NOT FOUND IN SOURCE -msgid "Ticket Id" -msgstr "申请单编号" - -#: NOT FOUND IN SOURCE -msgid "Ticket Processing Due" -msgstr "表单运行期限" - -#: etc/initialdata:324 -msgid "Ticket Resolved" -msgstr "申请单已解决" - -#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1207 -msgid "Ticket Transactions" -msgstr "申请单的更动" - -#: NOT FOUND IN SOURCE -msgid "Ticket Type" -msgstr "表单种类" - -#: NOT FOUND IN SOURCE -msgid "Ticket attachment" -msgstr "申请单附件" - -#: lib/RT/Tickets_Overlay.pm:1920 -msgid "Ticket content" -msgstr "申请单内容" - -#: lib/RT/Tickets_Overlay.pm:1969 -msgid "Ticket content type" -msgstr "申请单内容类别" - -#: lib/RT/Ticket_Overlay.pm:603 lib/RT/Ticket_Overlay.pm:617 lib/RT/Ticket_Overlay.pm:628 lib/RT/Ticket_Overlay.pm:763 -msgid "Ticket could not be created due to an internal error" -msgstr "内部错误,无法新增申请单" - -#: NOT FOUND IN SOURCE -msgid "Ticket created" -msgstr "申请单新增完毕" - -#: NOT FOUND IN SOURCE -msgid "Ticket creation failed" -msgstr "申请单新增失败" - -#: NOT FOUND IN SOURCE -msgid "Ticket deleted" -msgstr "申请单删除完毕" - -#: NOT FOUND IN SOURCE -msgid "Ticket id not found" -msgstr "找不到申请单编号" - -#: NOT FOUND IN SOURCE -msgid "Ticket killed" -msgstr "申请单删除完毕" - -#: html/Ticket/Display.html:55 -msgid "Ticket metadata" -msgstr "申请单的描述信息" - -#: NOT FOUND IN SOURCE -msgid "Ticket not found" -msgstr "找不到申请单" - -#: etc/initialdata:310 -msgid "Ticket status changed" -msgstr "申请单现况已改变" - -#: NOT FOUND IN SOURCE -msgid "Ticket watchers" -msgstr "申请单视察员" - -#: lib/RT/Search/FromSQL.pm:82 -#. (ref $self) -msgid "TicketSQL search module" -msgstr "TicketSQL 查询模块" - -#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:71 html/Search/Elements/Chart:109 lib/RT/CustomField_Overlay.pm:1206 -msgid "Tickets" -msgstr "申请单" - -#: NOT FOUND IN SOURCE -msgid "Tickets %1 %2" -msgstr "申请单 %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Tickets %1 by %2" -msgstr "申请单 %1 (%2)" - -#: NOT FOUND IN SOURCE -msgid "Tickets I own" -msgstr "待处理的申请单" - -#: NOT FOUND IN SOURCE -msgid "Tickets I requested" -msgstr "送出的申请单" - -msgid "CreatedBy" -msgstr "建立人" - -#: html/Tools/Reports/CreatedByDates.html:86 -msgid "Tickets created after" -msgstr "申请单建立起始日" - -#: html/Tools/Reports/CreatedByDates.html:88 -msgid "Tickets created before" -msgstr "申请单建立截止日" - -#: NOT FOUND IN SOURCE -msgid "Tickets from %1" -msgstr "%1 的申请单" - -#: html/Tools/Reports/ResolvedByDates.html:87 -msgid "Tickets resolved after" -msgstr "申请单解决起始日" - -#: html/Tools/Reports/ResolvedByDates.html:89 -msgid "Tickets resolved before" -msgstr "申请单解决截止日" - -#: html/Approvals/Elements/ShowDependency:48 -msgid "Tickets which depend on this approval:" -msgstr "批准之后,可接续处理:" - -#: html/Search/Elements/PickBasics:134 html/Ticket/Create.html:183 html/Ticket/Elements/EditBasics:72 -msgid "Time Estimated" -msgstr "预计时间" - -msgid "TimeEstimated" -msgstr "预计时间" - -#: html/Search/Elements/PickBasics:135 html/Ticket/Create.html:196 html/Ticket/Elements/EditBasics:85 -msgid "Time Left" -msgstr "剩馀时间" - -#: html/Search/Elements/PickBasics:133 html/Ticket/Create.html:189 html/Ticket/Elements/EditBasics:78 -msgid "Time Worked" -msgstr "处理时间" - -#: lib/RT/Tickets_Overlay.pm:1891 -msgid "Time left" -msgstr "剩馀时间" - -#: html/Elements/Footer:51 -msgid "Time to display" -msgstr "显示时间" - -#: lib/RT/Tickets_Overlay.pm:1866 -msgid "Time worked" -msgstr "已处理时间" - -#: NOT FOUND IN SOURCE -msgid "TimeLeft" -msgstr "剩馀时间" - -#: lib/RT/Ticket_Overlay.pm:1167 -msgid "TimeWorked" -msgstr "已处理时间" - -#: html/Search/Elements/EditFormat:74 -msgid "Title" -msgstr "标题" - -msgid "QueueName" -msgstr "表单名称" - -msgid "OwnerName" -msgstr "承办人名称" - -msgid "<blank>" -msgstr "<留空>" - -msgid "NEWLINE" -msgstr "(换列)" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:" -msgstr "产生这次更动的差异档:" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:\\n" -msgstr "产生这次更动的差异档:\\n" - -#: html/Elements/Footer:62 -#. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') -msgid "To inquire about support, training, custom development or licensing, please contact %1." -msgstr "如果有支持、教育训练及定制开发的需要,请连络 %1。" - -#: NOT FOUND IN SOURCE -msgid "Todo" -msgstr "待办事项" - -#: lib/RT/Ticket_Overlay.pm:1170 -msgid "Told" -msgstr "告知日" - -#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:74 html/Tools/index.html:46 html/Tools/index.html:49 -msgid "Tools" -msgstr "工具" - -#: html/Search/Elements/Chart:130 -msgid "Total" -msgstr "页" - -#: etc/initialdata:252 -msgid "Transaction" -msgstr "更动" - -#: lib/RT/Transaction_Overlay.pm:805 -#. ($self->Data) -msgid "Transaction %1 purged" -msgstr "清除更动报告 %1" - -#: lib/RT/Transaction_Overlay.pm:183 -msgid "Transaction Created" -msgstr "更动报告已新增" - -#: html/Admin/Elements/QueueTabs:78 -msgid "Transaction Custom Fields" -msgstr "更动的自订字段" - -#: NOT FOUND IN SOURCE -msgid "Transaction->Create couldn't, as you didn't specify a ticket id" -msgstr "未指定申请单编号,无法新增更动" - -#: lib/RT/Transaction_Overlay.pm:128 -msgid "Transaction->Create couldn't, as you didn't specify an object type and id" -msgstr "未指定对象类别及编号,无法新增更动" - -#: NOT FOUND IN SOURCE -msgid "TransactionBatch" -msgstr "批次更动时" - -#: NOT FOUND IN SOURCE -msgid "TransactionCreate" -msgstr "新增更动时" - -#: lib/RT/Transaction_Overlay.pm:870 -msgid "Transactions are immutable" -msgstr "不可更改更动报告" - -#: NOT FOUND IN SOURCE -msgid "Transfer to" -msgstr "移交给" - -#: NOT FOUND IN SOURCE -msgid "Trying to delete a right: %1" -msgstr "试图删除某项权限:%1" - -#: NOT FOUND IN SOURCE -msgid "Tue" -msgstr "星期二" - -#: lib/RT/Date.pm:418 -msgid "Tue." -msgstr "星期二" - -#: html/Admin/CustomFields/Modify.html:66 html/Admin/Elements/EditCustomField:65 html/Ticket/Elements/AddWatchers:54 html/Ticket/Elements/AddWatchers:65 html/Ticket/Elements/AddWatchers:75 lib/RT/Ticket_Overlay.pm:1168 lib/RT/Tickets_Overlay.pm:1705 -msgid "Type" -msgstr "类别" - -#: lib/RT/ScripCondition_Overlay.pm:128 -msgid "Unimplemented" -msgstr "尚无实作" - -#: html/Admin/Users/Modify.html:89 -msgid "Unix login" -msgstr "外部系统登入帐号" - -#: NOT FOUND IN SOURCE -msgid "UnixUsername" -msgstr "外部系统登入帐号" - -#: lib/RT/Attachment_Overlay.pm:289 lib/RT/Record.pm:861 -#. ($self->ContentEncoding) -#. ($ContentEncoding) -msgid "Unknown ContentEncoding %1" -msgstr "不可解的内容文字编码方式 %1" - -#: html/Search/Build.html:455 lib/RT/Report/Tickets.pm:410 -msgid "Unknown field: %1" -msgstr "未知的字段:%1" - -#: html/Elements/SelectResultsPerPage:58 -msgid "Unlimited" -msgstr "全数显示" - -#: html/Search/Elements/SelectSearchesForObjects:64 -msgid "Unnamed search" -msgstr "未命名的查询" - -#: etc/initialdata:32 -msgid "Unprivileged" -msgstr "非内部成员" - -#: html/Admin/Elements/EditCustomFields:60 -msgid "Unselected Custom Fields" -msgstr "未选取的自订字段" - -#: html/Admin/CustomFields/Objects.html:61 -msgid "Unselected objects" -msgstr "未选取的对象" - -#: lib/RT/Transaction_Overlay.pm:659 -msgid "Untaken" -msgstr "未被受理" - -#: NOT FOUND IN SOURCE -msgid "Untitled search" -msgstr "未命名的查询" - -#: NOT FOUND IN SOURCE -msgid "Up" -msgstr "上一页" - -#: html/Admin/Elements/EditScrip:128 html/Elements/RT__Ticket/ColumnMap:302 html/Search/Bulk.html:193 html/Search/Bulk.html:75 -msgid "Update" -msgstr "处理" - -#: NOT FOUND IN SOURCE -msgid "Update All" -msgstr "全部更新" - -#: NOT FOUND IN SOURCE -msgid "Update ID" -msgstr "更新编号" - -#: html/Ticket/Update.html:135 -msgid "Update Ticket" -msgstr "更新申请单" - -#: html/Search/Bulk.html:126 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:72 -msgid "Update Type" -msgstr "更新类别" - -#: NOT FOUND IN SOURCE -msgid "Update all these tickets at once" -msgstr "整批更新申请单" - -#: NOT FOUND IN SOURCE -msgid "Update email" -msgstr "更新电子邮件信箱" - -#: html/Search/Bulk.html:200 html/Search/Results.html:78 -msgid "Update multiple tickets" -msgstr "批次更新申请单" - -#: NOT FOUND IN SOURCE -msgid "Update name" -msgstr "更新帐号" - -#: lib/RT/Action/CreateTickets.pm:750 lib/RT/Interface/Web.pm:584 -msgid "Update not recorded." -msgstr "更新未被记录" - -#: NOT FOUND IN SOURCE -msgid "Update selected tickets" -msgstr "更新选择的申请单" - -#: NOT FOUND IN SOURCE -msgid "Update signature" -msgstr "更新签章" - -#: html/Ticket/ModifyAll.html:84 -msgid "Update ticket" -msgstr "更新申请单" - -#: NOT FOUND IN SOURCE -msgid "Update ticket # %1" -msgstr "更新申请单 # %1" - -#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 -#. ($Ticket->id) -msgid "Update ticket #%1" -msgstr "更新申请单 #%1" - -#: html/Ticket/Update.html:158 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Update ticket #%1 (%2)" -msgstr "更新申请单 #%1 (%2)" - -#: lib/RT/Action/CreateTickets.pm:748 lib/RT/Interface/Web.pm:583 -msgid "Update type was neither correspondence nor comment." -msgstr "更新的内容并非申请单回复也不是评论" - -#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/CustomField_Overlay.pm:1284 lib/RT/Ticket_Overlay.pm:1171 -msgid "Updated" -msgstr "前次更新" - -#: html/Tools/Offline.html:93 -msgid "Upload" -msgstr "上载" - -#: lib/RT/CustomField_Overlay.pm:84 -msgid "Upload multiple files" -msgstr "上载多个档案" - -#: lib/RT/CustomField_Overlay.pm:79 -msgid "Upload multiple images" -msgstr "上载多份图片" - -#: lib/RT/CustomField_Overlay.pm:85 -msgid "Upload one file" -msgstr "上载一个档案" - -#: lib/RT/CustomField_Overlay.pm:80 -msgid "Upload one image" -msgstr "上载一份图片" - -#: lib/RT/CustomField_Overlay.pm:86 -msgid "Upload up to %1 files" -msgstr "上载最多 %1 个档案" - -#: lib/RT/CustomField_Overlay.pm:81 -msgid "Upload up to %1 images" -msgstr "上载最多 %1 份图片" - -#: html/Tools/Offline.html:93 -msgid "Upload your changes" -msgstr "上载您的更动" - -#: html/Admin/index.html:90 -msgid "Use other RT administrative tools" -msgstr "使用其它的 RT 管理工具" - -#: NOT FOUND IN SOURCE -msgid "User" -msgstr "使用者" - -#: NOT FOUND IN SOURCE -msgid "User %1 %2: %3\\n" -msgstr "使用者 %1 %2:%3\\n" - -#: NOT FOUND IN SOURCE -msgid "User %1 Password: %2\\n" -msgstr "使用者 %1 口令:%2\\n" - -#: lib/RT/Ticket_Overlay.pm:506 -#. ($args{'Owner'}) -msgid "User '%1' could not be found." -msgstr "找不到使用者 '%1'。" - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found" -msgstr "找不到使用者 '%1'" - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found\\n" -msgstr "找不到使用者 '%1'\\n" - -#: etc/initialdata:132 etc/initialdata:206 -msgid "User Defined" -msgstr "使用者自订" - -#: html/Admin/Elements/EditScrip:93 -msgid "User Defined conditions and actions" -msgstr "使用者自订的条件及动作" - -#: NOT FOUND IN SOURCE -msgid "User ID" -msgstr "使用者 ID" - -#: NOT FOUND IN SOURCE -msgid "User Id" -msgstr "使用者 ID" - -#: NOT FOUND IN SOURCE -msgid "User Number" -msgstr "员工编号" - -#: html/Admin/Elements/CustomFieldTabs:72 html/Admin/Elements/GroupTabs:68 html/Admin/Elements/QueueTabs:85 html/Admin/Elements/SystemTabs:68 html/Admin/Global/index.html:80 -msgid "User Rights" -msgstr "使用者权限" - -#: NOT FOUND IN SOURCE -msgid "User Setup" -msgstr "使用者设定" - -#: NOT FOUND IN SOURCE -msgid "User Shift" -msgstr "员工班别" - -#: NOT FOUND IN SOURCE -msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" -msgstr "使用者试图在 %2 对象 #%3 的自订字段 %1 上执行未知的更新操作" - -#: html/Admin/Users/Modify.html:301 -#. ($msg) -msgid "User could not be created: %1" -msgstr "无法新增使用者:%1" - -#: lib/RT/User_Overlay.pm:330 -msgid "User created" -msgstr "使用者新增完毕" - -#: NOT FOUND IN SOURCE -msgid "User created: %1" -msgstr "使用者 %1 新增完毕" - -#: NOT FOUND IN SOURCE -msgid "User created: %1 (%2)" -msgstr "使用者 %1 (%2) 新增完毕" - -#: html/Admin/CustomFields/GroupRights.html:74 html/Admin/Global/GroupRights.html:88 html/Admin/Groups/GroupRights.html:75 html/Admin/Queues/GroupRights.html:90 -msgid "User defined groups" -msgstr "使用者定义的群组" - -#: lib/RT/User_Overlay.pm:592 lib/RT/User_Overlay.pm:612 -msgid "User loaded" -msgstr "已加载使用者" - -#: NOT FOUND IN SOURCE -msgid "User notified" -msgstr "已通知使用者" - -#: NOT FOUND IN SOURCE -msgid "User renamed from %1 to %2" -msgstr "使用者 %1 已改名为 %2" - -#: NOT FOUND IN SOURCE -msgid "User view" -msgstr "使用者私人数据" - -#: html/Admin/Groups/index.html:103 -msgid "User-defined groups" -msgstr "使用者自定群组" - -#: NOT FOUND IN SOURCE -msgid "UserDefined" -msgstr "使用者自定" - -#: html/Admin/Users/Modify.html:69 html/Elements/Login:90 html/Ticket/Elements/AddWatchers:56 -msgid "Username" -msgstr "帐号" - -#: html/Admin/Elements/GlobalCustomFieldTabs:55 html/Admin/Elements/SelectNewGroupMembers:47 html/Admin/Elements/Tabs:53 html/Admin/Global/CustomFields/index.html:64 html/Admin/Groups/Members.html:76 html/Admin/Queues/People.html:89 html/Admin/index.html:62 html/User/Groups/Members.html:79 lib/RT/CustomField_Overlay.pm:1208 -msgid "Users" -msgstr "使用者" - -#: html/Admin/Users/index.html:85 -msgid "Users matching search criteria" -msgstr "符合查询条件的使用者" - -#: bin/rt-crontool:134 -#. ($transaction->id) -msgid "Using transaction #%1..." -msgstr "使用更动 #%1..." - -#: lib/RT/Tickets_Overlay_SQL.pm:528 -msgid "Valid Query" -msgstr "合理的查询" - -#: html/Admin/CustomFields/Modify.html:80 -msgid "Validation" -msgstr "验证" - -#: NOT FOUND IN SOURCE -msgid "ValueOfQueue" -msgstr "选择表单" - -#: html/Admin/CustomFields/Modify.html:130 html/Admin/Elements/EditCustomField:78 -msgid "Values" -msgstr "字段值" - -#: NOT FOUND IN SOURCE -msgid "View log" -msgstr "检视纪录档" - -#: lib/RT/Queue_Overlay.pm:107 -msgid "Watch" -msgstr "视察" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "WatchAsAdminCc" -msgstr "以管理员副本收件人身份视察" - -#: NOT FOUND IN SOURCE -msgid "Watcher loaded" -msgstr "成功加载视察员信息" - -#: html/Admin/Elements/QueueTabs:63 -msgid "Watchers" -msgstr "视察员" - -#: NOT FOUND IN SOURCE -msgid "WebEncoding" -msgstr "网页文字编码方式" - -#: NOT FOUND IN SOURCE -msgid "Wed" -msgstr "星期三" - -#: lib/RT/Date.pm:419 -msgid "Wed." -msgstr "星期三" - -#: html/Tools/MyDay.html:75 -msgid "What I did today" -msgstr "今日工作一览" - -#: etc/initialdata:521 -msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" -msgstr "当申请单通过所有签核后,将此讯息回复到原申请单" - -#: etc/initialdata:485 -msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" -msgstr "当申请单通过某项签核后,将此讯息回复到原申请单" - -#: etc/initialdata:146 -msgid "When a ticket is created" -msgstr "新增申请单时" - -#: etc/initialdata:418 -msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" -msgstr "签核单新增之后,通知应受理的承办人及管理员副本收件人" - -#: etc/initialdata:151 -msgid "When anything happens" -msgstr "当任何事情发生时" - -#: etc/initialdata:199 -msgid "Whenever a ticket is resolved" -msgstr "当申请单解决时" - -#: etc/initialdata:185 -msgid "Whenever a ticket's owner changes" -msgstr "当申请单更换承办人时" - -#: etc/initialdata:178 etc/upgrade/3.1.17/content:16 -msgid "Whenever a ticket's priority changes" -msgstr "当申请单的优先顺序改变时" - -#: etc/initialdata:193 -msgid "Whenever a ticket's queue changes" -msgstr "当申请单更换表单时" - -#: etc/initialdata:170 -msgid "Whenever a ticket's status changes" -msgstr "当申请单更新现况时" - -#: etc/initialdata:207 -msgid "Whenever a user-defined condition occurs" -msgstr "当使用者自订的情况发生时" - -#: etc/initialdata:164 -msgid "Whenever comments come in" -msgstr "当评论送达时" - -#: etc/initialdata:157 -msgid "Whenever correspondence comes in" -msgstr "当回复送达时" - -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:88 -msgid "Work" -msgstr "公司" - -#: html/Search/Results.html:82 -msgid "Work offline" -msgstr "离线工作" - -#: NOT FOUND IN SOURCE -msgid "WorkPhone" -msgstr "公司电话" - -#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 -msgid "Worked" -msgstr "处理时间" - -#: NOT FOUND IN SOURCE -msgid "Workflow #%1" -msgstr "流程 #%1" - -#: NOT FOUND IN SOURCE -msgid "Workflow Begin" -msgstr "流程开始" - -#: NOT FOUND IN SOURCE -msgid "Workflow End" -msgstr "流程结束" - -#: NOT FOUND IN SOURCE -msgid "Workflow deleted" -msgstr "流程已删除" - -#: NOT FOUND IN SOURCE -msgid "Workflows" -msgstr "流程" - -#: NOT FOUND IN SOURCE -msgid "Writable" -msgstr "可读写" - -#: NOT FOUND IN SOURCE -msgid "XXX CHANGEME You are not an authorized user" -msgstr "XXX CHANGEME 您是未经授权的使用者" - -#: NOT FOUND IN SOURCE -msgid "Yes" -msgstr "是" - -#: lib/RT/Ticket_Overlay.pm:3140 -msgid "You already own this ticket" -msgstr "您已是这份申请单的承办人" - -#: html/autohandler:214 html/autohandler:222 -msgid "You are not an authorized user" -msgstr "您不是被授权的使用者" - -#: NOT FOUND IN SOURCE -msgid "You can access it with the Download button on the right." -msgstr "您可以按右方的‘下载’键来取得。" - -#: html/Prefs/Search.html:56 -msgid "You can also edit the predefined search itself" -msgstr "您也可以直接编辑预先定义的搜寻方式" - -#: lib/RT/Ticket_Overlay.pm:3025 -msgid "You can only reassign tickets that you own or that are unowned" -msgstr "祇能重新指派您所承办或是没有承办人的申请单" - -#: lib/RT/Ticket_Overlay.pm:3021 -msgid "You can only take tickets that are unowned" -msgstr "您祇能受理尚无承办人的申请单" - -#: NOT FOUND IN SOURCE -msgid "You don't have permission to view that ticket.\\n" -msgstr "您没有看那份申请单的权限。\\n" - -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 -#. ($num, $queue) -msgid "You found %1 tickets in queue %2" -msgstr "您会在表单 %2 找到 %1 的申请单" - -#: html/NoAuth/Logout.html:52 -msgid "You have been logged out of RT." -msgstr "您已注销 RT。" - -#: html/SelfService/Display.html:133 -msgid "You have no permission to create tickets in that queue." -msgstr "您没有在该表单新增申请单的权限。" - -#: lib/RT/Ticket_Overlay.pm:2003 -msgid "You may not create requests in that queue." -msgstr "您不能在该表单中提出申请。" - -#: NOT FOUND IN SOURCE -msgid "You need to restart the Request Tracker service for saved changes to take effect." -msgstr "您必须重新激活 Request Tracker 服务,储存的更动才会生效。" - -#: html/NoAuth/Logout.html:56 -msgid "You're welcome to login again" -msgstr "欢迎下次再来" - -#: NOT FOUND IN SOURCE -msgid "Your %1 requests" -msgstr "您提出的 %1 申请单" - -#: NOT FOUND IN SOURCE -msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" -msgstr "RT 管理员可能设错了由 RT 寄出的邮件收件人标头档" - -#: etc/initialdata:502 -msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "申请单已由 %1 批准。可能还有其它待签核的步骤。" - -#: etc/initialdata:540 -msgid "Your request has been approved." -msgstr "您的申请单已完成签核程序。" - -#: NOT FOUND IN SOURCE -msgid "Your request was rejected" -msgstr "您的申请单已被驳回" - -#: NOT FOUND IN SOURCE -msgid "Your request was rejected by %1." -msgstr "您的申请单已被 %1 驳回。" - -#: etc/initialdata:445 -msgid "Your request was rejected." -msgstr "您的申请单已被驳回。" - -#: html/autohandler:251 -msgid "Your username or password is incorrect" -msgstr "您的帐号或口令有误" - -#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 -msgid "Zip" -msgstr "邮政编码" - -#: NOT FOUND IN SOURCE -msgid "[no subject]" -msgstr "[没有标题]" - -msgid "[none]" -msgstr "[无]" - -#: NOT FOUND IN SOURCE -msgid "ago" -msgstr "过期" - -#: NOT FOUND IN SOURCE -msgid "alert" -msgstr "急讯" - -#: lib/RT/System.pm:87 -msgid "allow creation of saved searches" -msgstr "允许建立预存查询" - -#: lib/RT/System.pm:86 -msgid "allow loading of saved searches" -msgstr "允许加载预存查询" - -#: NOT FOUND IN SOURCE -msgid "approving" -msgstr "待签核" - -#: html/User/Elements/DelegateRights:80 -#. ($right->PrincipalObj->Object->SelfDescription) -msgid "as granted to %1" -msgstr "权限同 %1" - -#: html/Search/Results.html:83 -msgid "chart" -msgstr "图表" - -#: html/SelfService/Closed.html:49 -msgid "closed" -msgstr "已解决" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 -msgid "contains" -msgstr "包含" - -#: NOT FOUND IN SOURCE -msgid "content" -msgstr "内容" - -#: NOT FOUND IN SOURCE -msgid "content-type" -msgstr "类型" - -#: NOT FOUND IN SOURCE -msgid "correspondence (probably) not sent" -msgstr "申请单回复(可能)未送出" - -#: NOT FOUND IN SOURCE -msgid "correspondence sent" -msgstr "申请单回复已送出" - -#: NOT FOUND IN SOURCE -msgid "critical" -msgstr "严重" - -#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:346 -msgid "days" -msgstr "天" - -#: NOT FOUND IN SOURCE -msgid "dead" -msgstr "拒绝处理" - -#: NOT FOUND IN SOURCE -msgid "debug" -msgstr "侦错" - -#: NOT FOUND IN SOURCE -msgid "delete" -msgstr "删除" - -#: lib/RT/Queue_Overlay.pm:87 -msgid "deleted" -msgstr "已删除" - -#: html/Search/Elements/PickBasics:61 -msgid "does not match" -msgstr "不符合" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 -msgid "doesn't contain" -msgstr "不包含" - -#: NOT FOUND IN SOURCE -msgid "email address" -msgstr "电子邮件信箱" - -#: NOT FOUND IN SOURCE -msgid "emergency" -msgstr "危难" - -#: html/Elements/SelectEqualityOperator:59 -msgid "equal to" -msgstr "等于" - -#: NOT FOUND IN SOURCE -msgid "error" -msgstr "错误" - -#: html/Search/Build.html:547 -msgid "error: can't move down" -msgstr "错误:无法下移" - -#: html/Search/Build.html:569 -msgid "error: can't move left" -msgstr "错误:无法左移" - -#: html/Search/Build.html:528 -msgid "error: can't move up" -msgstr "错误:无法上移" - -#: html/Search/Build.html:612 -msgid "error: nothing to delete" -msgstr "错误:没有可删除的对象" - -#: html/Search/Build.html:533 html/Search/Build.html:552 html/Search/Build.html:574 html/Search/Build.html:603 -msgid "error: nothing to move" -msgstr "错误:没有可移动的对象" - -#: html/Search/Build.html:630 -msgid "error: nothing to toggle" -msgstr "错误:没有可切换的对象" - -#: NOT FOUND IN SOURCE -msgid "false" -msgstr "假" - -#: NOT FOUND IN SOURCE -msgid "filename" -msgstr "档名" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 -msgid "greater than" -msgstr "大于" - -#: lib/RT/Group_Overlay.pm:214 -#. ($self->Name) -msgid "group '%1'" -msgstr "群组 '%1'" - -#: html/Search/Results.html:88 -#. ($m->scomp('Elements/SelectGroupBy', Name => 'PrimaryGroupBy', Query => $Query)) -msgid "grouped by %1" -msgstr "依 %1 分组" - -#: lib/RT/Date.pm:342 -msgid "hours" -msgstr "小时" - -#: html/Search/Elements/PickBasics:48 -msgid "id" -msgstr "编号" - -#: NOT FOUND IN SOURCE -msgid "info" -msgstr "信息" - -#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:162 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 -msgid "is" -msgstr "是" - -#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:163 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 -msgid "isn't" -msgstr "不是" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 -msgid "less than" -msgstr "小于" - -#: NOT FOUND IN SOURCE -msgid "level Admin" -msgstr "层主管" - -#: html/Search/Elements/PickBasics:60 -msgid "matches" -msgstr "符合" - -#: lib/RT/Date.pm:338 -msgid "min" -msgstr "分" - -#: NOT FOUND IN SOURCE -msgid "minutes" -msgstr "分钟" - -#: NOT FOUND IN SOURCE -msgid "modifications\\n\\n" -msgstr "更改\\n\\n" - -#: lib/RT/Date.pm:354 -msgid "months" -msgstr "月" - -#: lib/RT/Queue_Overlay.pm:82 -msgid "new" -msgstr "新建立" - -#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:65 -msgid "no name" -msgstr "没有名称" - -#: html/Admin/Elements/EditScrips:64 -msgid "no value" -msgstr "没有值" - -#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 -msgid "none" -msgstr "无" - -#: html/Elements/SelectEqualityOperator:59 -msgid "not equal to" -msgstr "不等于" - -#: NOT FOUND IN SOURCE -msgid "notice" -msgstr "提示" - -#: NOT FOUND IN SOURCE -msgid "notlike" -msgstr "不符合" - -#: NOT FOUND IN SOURCE -msgid "number" -msgstr "号" - -#: html/SelfService/Elements/MyRequests:82 lib/RT/Queue_Overlay.pm:83 -msgid "open" -msgstr "开启" - -#: NOT FOUND IN SOURCE -msgid "opened" -msgstr "已开启" - -#: lib/RT/Group_Overlay.pm:219 -#. ($self->Name, $user->Name) -msgid "personal group '%1' for user '%2'" -msgstr "使用者‘%2’的‘%1’代理人群组" - -#: lib/RT/Group_Overlay.pm:227 -#. ($queue->Name, $self->Type) -msgid "queue %1 %2" -msgstr "表单 %1 %2" - -#: lib/RT/Queue_Overlay.pm:86 -msgid "rejected" -msgstr "已驳回" - -#: lib/RT/Queue_Overlay.pm:85 -msgid "resolved" -msgstr "已处理" - -#: NOT FOUND IN SOURCE -msgid "rtname" -msgstr "服务器名称" - -#: lib/RT/Date.pm:334 -msgid "sec" -msgstr "秒" - -#: lib/RT/System.pm:85 -msgid "show Configuration tab" -msgstr "显示设定页签" - -#: html/Search/Results.html:80 -msgid "spreadsheet" -msgstr "电子表格" - -#: lib/RT/Queue_Overlay.pm:84 -msgid "stalled" -msgstr "延宕" - -#: html/Search/Results.html:89 -#. ($m->scomp('Elements/SelectChartType', Name => 'ChartStyle')) -msgid "style: %1" -msgstr "样式:%1" - -#: html/Prefs/MyRT.html:93 -msgid "summary rows" -msgstr "加总列" - -#: lib/RT/Group_Overlay.pm:222 -#. ($self->Type) -msgid "system %1" -msgstr "系统 %1" - -#: lib/RT/Group_Overlay.pm:233 -#. ($self->Type) -msgid "system group '%1'" -msgstr "系统群组 '%1'" - -#: html/Elements/Error:64 html/SelfService/Error.html:63 -msgid "the calling component did not specify why" -msgstr "呼叫组件未指明原因" - -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "申请单 #%1" - -#: lib/RT/Group_Overlay.pm:230 -#. ($self->Instance, $self->Type) -msgid "ticket #%1 %2" -msgstr "申请单 #%1 %2" - -#: NOT FOUND IN SOURCE -msgid "till" -msgstr "至" - -#: NOT FOUND IN SOURCE -msgid "to" -msgstr "到" - -#: NOT FOUND IN SOURCE -msgid "true" -msgstr "真" - -#: lib/RT/Group_Overlay.pm:236 -#. ($self->Id) -msgid "undescribed group %1" -msgstr "没有描述的群组 %1" - -#: NOT FOUND IN SOURCE -msgid "unresolved" -msgstr "未处理" - -#: lib/RT/Group_Overlay.pm:211 -#. ($user->Object->Name) -msgid "user %1" -msgstr "使用者 %1" - -#: NOT FOUND IN SOURCE -msgid "warning" -msgstr "警告" - -#: lib/RT/Date.pm:350 -msgid "weeks" -msgstr "周" - -#: NOT FOUND IN SOURCE -msgid "with template %1" -msgstr "模板:%1" - -#: lib/RT/Date.pm:358 -msgid "years" -msgstr "年" - -msgid "Press 'Esc' to close this window." -msgstr "按 'Esc' 键可关闭本窗口。" - -msgid "HasMember" -msgstr "拥有成员" - -msgid "LinkedTo" -msgstr "连结至" - -msgid "Watcher" -msgstr "视察员" - -msgid "(displaying new and open tickets for %1)" -msgstr "(显示 %1 名下新建立及开启中的申请单)" diff --git a/rt/lib/RT/I18N/zh_tw.po b/rt/lib/RT/I18N/zh_tw.po deleted file mode 100644 index 7552a6bdf..000000000 --- a/rt/lib/RT/I18N/zh_tw.po +++ /dev/null @@ -1,8360 +0,0 @@ -# -msgid "" -msgstr "" -"Project-Id-Version: RT 3.6.x\n" -"PO-Revision-Date: 2007-12-09 13:05+0800\n" -"Last-Translator: Audrey Tang <cpan@audreyt.org>\n" -"Language-Team: rt-devel <rt-devel@lists.bestpractical.com>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: html/Widgets/SavedSearch:70 -#. ($self->{CurrentSearch}{Object}->Description) -msgid " %1 deleted." -msgstr "" - -#: html/Widgets/SavedSearch:47 -#. ($self->{CurrentSearch}{Description}, $args->{Description}) -msgid " %1 renamed to %2." -msgstr "" - -#: html/Widgets/SavedSearch:60 -#. ($args->{Description}) -msgid " %1 saved." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "#" -msgstr "#" - -#: NOT FOUND IN SOURCE -msgid "#%1" -msgstr "#%1" - -#: html/Approvals/Elements/Approve:48 html/Approvals/Elements/ShowDependency:71 html/SelfService/Display.html:46 html/Ticket/Display.html:47 html/Ticket/Display.html:51 -#. ($Ticket->id, $Ticket->Subject) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -#. ($ticket->Id, $ticket->Subject) -#. ($TicketObj->Id, $TicketObj->Subject) -msgid "#%1: %2" -msgstr "#%1: %2" - -#: html/Elements/ShowSearch:105 -msgid "$1" -msgstr "$1" - -#: lib/RT/Record.pm:940 -#. ($label) -msgid "$prefix %1" -msgstr "$prefix %1" - -#: NOT FOUND IN SOURCE -msgid "%*(%1,group ticket)" -msgstr "%*(%1) 件參與的申請單" - -#: NOT FOUND IN SOURCE -msgid "%*(%1,ticket) due" -msgstr "%*(%1) 件限期完成的申請單" - -#: NOT FOUND IN SOURCE -msgid "%*(%1,unresolved ticket)" -msgstr "%*(%1) 件尚未解決的申請單" - -#: lib/RT/URI/fsck_com_rt.pm:256 -#. ($self->ObjectType, $self->Object->Id) -msgid "%1 #%2" -msgstr "%1 #%2" - -#: lib/RT/Date.pm:365 -#. ($s, $time_unit) -msgid "%1 %2" -msgstr "%1 %2" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 %3" -msgstr "%1 %2 %3" - -#: lib/RT/Date.pm:401 -#. ($self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)) -msgid "%1 %2 %3 %4:%5:%6 %7" -msgstr "%7-%2-%3 %4:%5:%6 %1" - -#: lib/RT/Record.pm:1685 lib/RT/Transaction_Overlay.pm:647 lib/RT/Transaction_Overlay.pm:690 -#. ($cf->Name, $new_value->Content) -#. ($field, $self->NewValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 added" -msgstr "%2 已新增為 %1" - -#: lib/RT/Date.pm:362 -#. ($s, $time_unit) -msgid "%1 %2 ago" -msgstr "%1 %2 之前" - -#: lib/RT/Record.pm:1692 lib/RT/Transaction_Overlay.pm:654 -#. ($cf->Name, $old_content, $new_value->Content) -#. ($field, $self->OldValue, $self->NewValue) -msgid "%1 %2 changed to %3" -msgstr "%1 已從 %2 改為 %3" - -#: lib/RT/Record.pm:1689 lib/RT/Transaction_Overlay.pm:650 lib/RT/Transaction_Overlay.pm:696 -#. ($cf->Name, $old_value->Content) -#. ($field, $self->OldValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 deleted" -msgstr "%2 已自 %1 刪除" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 of group %3" -msgstr "%3 群組的 %1 %2" - -#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:63 html/Ticket/Elements/PreviewScrips:103 -#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) -msgid "%1 %2 with template %3" -msgstr "條件:%1 | 動作:%2 | 範本:%3" - -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 this ticket\\n" -msgstr "%1 (%2) %3 這份申請單\\n" - -#: html/Ticket/Elements/ShowAttachments:72 -#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) -msgid "%1 (%2) by %3" -msgstr "%1 (%2) - %3" - -#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:108 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:66 -#. (loc($DefaultStatus)) -#. (loc($Ticket->Status())) -#. (loc($TicketObj->Status)) -#. ($TicketObj->OwnerObj->Name()) -msgid "%1 (Unchanged)" -msgstr "%1 (未更改)" - -#: NOT FOUND IN SOURCE -msgid "%1 - %2 shown" -msgstr "顯示第 %1 - %2 筆" - -#: bin/rt-crontool:237 bin/rt-crontool:244 bin/rt-crontool:250 -#. ("--search-argument", "--search") -#. ("--condition-argument", "--condition") -#. ("--action-argument", "--action") -msgid "%1 - An argument to pass to %2" -msgstr "%1 - 傳遞給 %2 的一個參數" - -#: bin/rt-crontool:262 -#. ("--verbose") -msgid "%1 - Output status updates to STDOUT" -msgstr "%1 - 將更新狀態輸出到 STDOUT" - -#: bin/rt-crontool:253 -#. ("--template-id") -msgid "%1 - Specify id of the template you want to use" -msgstr "%1 - 指定欲使用的範本編號" - -#: bin/rt-crontool:256 -#. ("--transaction") -msgid "%1 - Specify if you want to use either 'first' or 'last' tarnsaction" -msgstr "%1 - 指定欲使用的更動為 'first' (第一項) 或 'last' (最後一項)" - -#: bin/rt-crontool:247 -#. ("--action") -msgid "%1 - Specify the action module you want to use" -msgstr "%1 - 指定欲使用的動作模組" - -#: bin/rt-crontool:241 -#. ("--condition") -msgid "%1 - Specify the condition module you want to use" -msgstr "%1 - 指定欲使用的條件模組" - -#: bin/rt-crontool:234 -#. ("--search") -msgid "%1 - Specify the search module you want to use" -msgstr "%1 - 指定欲使用的查詢模組" - -#: bin/rt-crontool:259 -#. ("--transaction-type") -msgid "%1 - Specify the type of a transaction you want to use" -msgstr "%1 - 指定欲使用的更動類別" - -#: html/Elements/Footer:56 -#. ('»|«', $RT::VERSION, '2006', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -msgid "%1 RT %2 Copyright 1996-%3 %4." -msgstr "%1 RT %2 版,%4 版權所有,1996-%3。" - -#: lib/RT/ScripAction_Overlay.pm:150 -#. ($self->Id) -msgid "%1 ScripAction loaded" -msgstr "載入手續 %1" - -#: NOT FOUND IN SOURCE -msgid "%1 Total" -msgstr "共 %1 筆" - -#: lib/RT/Record.pm:1722 -#. ($args{'Value'}, $cf->Name) -msgid "%1 added as a value for %2" -msgstr "新增 %1 作為 %2 的值" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on" -msgstr "別名 %1 需要可用的申請單編號" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on " -msgstr "別名 %1 需要可用的申請單編號 " - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on (from %2) %3" -msgstr "別名 %1 需要可用的申請單編號以處理 %3(出自 %2)" - -#: lib/RT/Link_Overlay.pm:144 lib/RT/Link_Overlay.pm:151 -#. ($args{'Base'}) -#. ($args{'Target'}) -msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "%1 看來是個本地物件,卻不在資料庫裡" - -#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:531 -#. ($self->BriefDescription , $self->CreatorObj->Name) -#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) -msgid "%1 by %2" -msgstr "%1 (%2)" - -#: lib/RT/Transaction_Overlay.pm:788 lib/RT/Transaction_Overlay.pm:797 lib/RT/Transaction_Overlay.pm:800 -#. ($self->Field , $q1->Name , $q2->Name) -#. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") -msgid "%1 changed from %2 to %3" -msgstr "%1 的值從 %2 改為 %3" - -#: html/Search/Build.html:213 -#. ($Description) -msgid "%1 copy" -msgstr "%1 複製" - -#: lib/RT/Record.pm:944 -msgid "%1 could not be set to %2." -msgstr "無法將 %1 設定為 %2。" - -#: NOT FOUND IN SOURCE -msgid "%1 couldn't init a transaction (%2)\\n" -msgstr "%1 無法初始更新 (%2)\\n" - -#: lib/RT/Ticket_Overlay.pm:2787 -#. ($self) -msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." -msgstr "%1 無法將現況設成已解決。RT 資料庫內容可能不一致。" - -#: lib/RT/Transaction_Overlay.pm:571 -#. ($obj_type) -msgid "%1 created" -msgstr "已建立 %1" - -#: lib/RT/Transaction_Overlay.pm:576 -#. ($obj_type) -msgid "%1 deleted" -msgstr "已刪除 %1" - -#: etc/initialdata:593 -msgid "%1 highest priority tickets I own" -msgstr "前 %1 份待處理申請單" - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I own..." -msgstr "前 %1 份待處理申請單..." - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I requested..." -msgstr "前 %1 份送出的申請單..." - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets pending my approval..." -msgstr "前 %1 份待簽核申請單..." - -#: bin/rt-crontool:229 -#. ($0) -msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." -msgstr "%1 是從外部排程程式(如 cron)來對申請單進行操作的工具。" - -#: lib/RT/Queue_Overlay.pm:863 -#. ($principal->Object->Name, $args{'Type'}) -msgid "%1 is no longer a %2 for this queue." -msgstr "%1 已不再是此表單的 %2。" - -#: NOT FOUND IN SOURCE -msgid "%1 is no longer a %2 for this ticket." -msgstr "%1 已不再是此申請單的 %2。" - -#: NOT FOUND IN SOURCE -msgid "%1 is no longer a value for custom field %2" -msgstr "%1 已不再是自訂欄位 %2 的值。" - -#: NOT FOUND IN SOURCE -msgid "%1 isn't a valid Queue id." -msgstr "%1 不是一個合法的表單編號。" - -#: html/Ticket/Elements/ShowTime:47 html/Ticket/Elements/ShowTime:49 -#. ($minutes) -msgid "%1 min" -msgstr "%1 分鐘" - -#: etc/initialdata:601 -msgid "%1 newest unowned tickets" -msgstr "前 %1 份待認領的申請單" - -#: NOT FOUND IN SOURCE -msgid "%1 not shown" -msgstr "沒有顯示 %1" - -#: lib/RT/CustomField_Overlay.pm:893 -msgid "%1 objects" -msgstr "%1 物件" - -#: NOT FOUND IN SOURCE -msgid "%1 recent tickets I own..." -msgstr "最新 %1 份待處理申請單..." - -#: NOT FOUND IN SOURCE -msgid "%1 recent tickets I requested..." -msgstr "最新 %1 份送出的申請單..." - -#: NOT FOUND IN SOURCE -msgid "%1 result(s) found" -msgstr "找到 %1 項結果" - -#: html/User/Elements/DelegateRights:97 -#. (loc($ObjectType =~ /^RT::(.*)$/)) -msgid "%1 rights" -msgstr "%1權限" - -#: NOT FOUND IN SOURCE -msgid "%1 succeeded\\n" -msgstr "%1 完成\\n" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for $MessageId" -msgstr "不知道 $MessageID 的 %1 類別" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for %2" -msgstr "不知道 %2 的 %1 類別" - -#: NOT FOUND IN SOURCE -msgid "%1 was created without a CurrentUser\\n" -msgstr "%1 新增時未指定現行使用者" - -#: lib/RT/Action/ResolveMembers.pm:63 -#. (ref $self) -msgid "%1 will resolve all members of a resolved group ticket." -msgstr "%1 會解決在已解決群組裡成員的申請單。" - -#: NOT FOUND IN SOURCE -msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." -msgstr "如果 %1 起始申請單依賴於某個鏈結,或是某個鏈結的成員,它將會被延宕。" - -#: lib/RT/CustomField_Overlay.pm:894 -msgid "%1's %2 objects" -msgstr "%1 內的 %2 物件" - -#: lib/RT/CustomField_Overlay.pm:895 -msgid "%1's %2's %3 objects" -msgstr "%1 內的 %2 的 %3 物件" - -#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:57 -#. ($object->Name) -#. ($Object->Name) -msgid "%1's saved searches" -msgstr "%1 已儲存的查詢" - -#: lib/RT/Transaction_Overlay.pm:481 -#. ($self) -msgid "%1: no attachment specified" -msgstr "%1:未指定附件" - -#: html/Ticket/Elements/ShowTransactionAttachments:78 -#. ($size) -msgid "%1b" -msgstr "%1 位元組" - -#: html/Ticket/Elements/ShowTransactionAttachments:75 -#. (int( $size / 102.4 ) / 10) -msgid "%1k" -msgstr "%1k 位元組" - -#: html/Ticket/Elements/ShowTime:49 -#. (sprintf("%.1f",$minutes / 60)) -msgid "%quant(%1,hour)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%quant(%1,result) found" -msgstr "找到 %1 項結果" - -#: lib/RT/Ticket_Overlay.pm:1142 -#. ($args{'Status'}) -msgid "'%1' is an invalid value for status" -msgstr "'%1' 不是一個合法的狀態值" - -#: NOT FOUND IN SOURCE -msgid "'%1' not a recognized action. " -msgstr "'%1'為無法辨識的動作。 " - -#: NOT FOUND IN SOURCE -msgid "(Check box to delete group member)" -msgstr "(點選欲刪除的成員)" - -#: NOT FOUND IN SOURCE -msgid "(Check box to delete scrip)" -msgstr "(點選欲刪除的手續)" - -#: html/Admin/Elements/EditCustomFieldValues:50 html/Admin/Elements/EditQueueWatchers:50 html/Admin/Elements/EditScrips:56 html/Admin/Elements/EditTemplates:57 html/Admin/Groups/Members.html:73 html/Elements/EditLinks:54 html/Ticket/Elements/EditPeople:67 html/User/Groups/Members.html:76 -msgid "(Check box to delete)" -msgstr "(點選欲刪除的項目)" - -#: NOT FOUND IN SOURCE -msgid "(Check boxes to delete)" -msgstr "(點選欲刪除的項目)" - -#: html/Ticket/Elements/PreviewScrips:99 -msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "(點選欲停用通知的收件人)" - -#: html/Ticket/Elements/PreviewScrips:123 -msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "(點選欲啟用通知的收件人)" - -#: html/Ticket/Create.html:218 -msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(鍵入申請單編號或網址,以空白分隔)" - -#: html/Admin/Queues/Modify.html:75 html/Admin/Queues/Modify.html:81 -#. ($RT::CorrespondAddress) -#. ($RT::CommentAddress) -msgid "(If left blank, will default to %1)" -msgstr "(如果留白, 則預設為 %1)" - -#: NOT FOUND IN SOURCE -msgid "(No Value)" -msgstr "(沒有值)" - -#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 -msgid "(No custom fields)" -msgstr "(沒有自訂欄位)" - -#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 -msgid "(No members)" -msgstr "(沒有成員)" - -#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:48 -msgid "(No scrips)" -msgstr "(沒有手續)" - -#: html/Admin/Elements/EditTemplates:52 -msgid "(No templates)" -msgstr "沒有範本" - -#: NOT FOUND IN SOURCE -msgid "(No workflows)" -msgstr "沒有流程" - -#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 -msgid "(None)" -msgstr "(無)" - -#: NOT FOUND IN SOURCE -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will receive future updates.)" -msgstr "(送出本份更新的密件副本給名單上以逗號隔開的電子郵件位址。這<b>不會</b>更改後續的收件者名單。)" - -#: NOT FOUND IN SOURCE -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will recieve future updates.)" -msgstr "(送出本份更新的密件副本給名單上以逗號隔開的電子郵件位址。這<b>不會</b>更改後續的收件者名單。)" - -#: html/Ticket/Update.html:90 -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <b>will</b> receive future updates.)" -msgstr "(送出本份更新的副本給名單上以逗號隔開的管理員電子郵件位址。這<b>將會</b>更改後續的收件者名單。)" - -#: html/Ticket/Create.html:103 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will receive future updates.)" -msgstr "(送出本份更新的副本給名單上以逗號隔開的電子郵件位址。這<b>不會</b>更改後續的收件者名單。)" - -#: NOT FOUND IN SOURCE -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will recieve future updates.)" -msgstr "(送出本份更新的副本給名單上以逗號隔開的電子郵件位址。這<b>不會</b>更改後續的收件者名單。)" - -#: html/Ticket/Update.html:86 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people <b>will</b> receive future updates.)" -msgstr "(送出本份更新的副本給名單上以逗號隔開的電子郵件位址。這<b>將會</b>更改後續的收件者名單。)" - -#: html/Ticket/Create.html:93 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "" - -#: html/Admin/Elements/EditScrip:96 -msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "(當條件或動作設為「使用者自訂」時,請填入這些欄位)" - -#: html/Ticket/Elements/EditWatchers:60 html/Ticket/Elements/ShowUserEntry:53 -msgid "(Will not be sent email)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(default delegate)" -msgstr "(預設代理人)" - -#: NOT FOUND IN SOURCE -msgid "(delete)" -msgstr "(刪除)" - -#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 -msgid "(empty)" -msgstr "(空白)" - -#: NOT FOUND IN SOURCE -msgid "(new)" -msgstr "(新增)" - -#: html/Admin/Users/index.html:60 -msgid "(no name listed)" -msgstr "(沒有列出姓名)" - -#: NOT FOUND IN SOURCE -msgid "(no subject)" -msgstr "(沒有主題)" - -#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:69 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:54 html/Search/Chart:56 html/Search/Elements/Chart:76 lib/RT/Transaction_Overlay.pm:591 -msgid "(no value)" -msgstr "(無)" - -#: html/Admin/Elements/EditCustomFieldValues:47 -msgid "(no values)" -msgstr "(沒有值)" - -#: html/Elements/EditLinks:132 html/Ticket/Elements/BulkLinks:49 -msgid "(only one ticket)" -msgstr "(僅能指定一份申請單)" - -#: html/Elements/RT__Ticket/ColumnMap:149 -msgid "(pending approval)" -msgstr "(等待簽核)" - -#: html/Elements/RT__Ticket/ColumnMap:152 -msgid "(pending other Collection)" -msgstr "(等待其他集合)" - -#: NOT FOUND IN SOURCE -msgid "(pending other tickets)" -msgstr "(等待其他申請單)" - -#: NOT FOUND IN SOURCE -msgid "(requestor's group)" -msgstr "(申請人所屬)" - -#: html/Admin/Users/Modify.html:71 -msgid "(required)" -msgstr "(必填)" - -#: html/Ticket/Elements/ShowTransactionAttachments:82 -msgid "(untitled)" -msgstr "(未命名)" - -#: html/Ticket/Elements/Reminders:133 -msgid "(yyyy/mm/dd)" -msgstr "(yyyy/mm/dd)" - -#: NOT FOUND IN SOURCE -msgid "*" -msgstr "★" - -#: html/Elements/EditCustomFieldSelect:57 -msgid "-" -msgstr "-" - -#: bin/rt-crontool:95 -msgid "--transaction argument could be only 'first' or 'last'" -msgstr "--transaction 的值僅能為 'first' 或 'last'" - -#: NOT FOUND IN SOURCE -msgid ":" -msgstr ":" - -#: html/Ticket/Elements/ShowBasics:53 -msgid "<% $Ticket->Status%>" -msgstr "<% $Ticket->Status%>" - -#: html/Elements/SelectTicketTypes:48 -msgid "<% $_ %>" -msgstr "<% $_ %>" - -#: html/Search/Elements/SelectLinks:48 -msgid "<%$_%>" -msgstr "<%$_%>" - -#: html/Search/Elements/DisplayOptions:73 -msgid "<%$field%>" -msgstr "<%$field%>" - -#: html/Elements/CreateTicket:47 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" class=\"button\" value=\"New ticket in\" /> %1" -msgstr "<input type=\"submit\" class=\"button\" value=\"提出申請單\" /> %1" - -#: docs/design_docs/string-extraction-guide.txt:54 lib/RT/StyleGuide.pod:787 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" value=\"New ticket in\"> %1" -msgstr "<input type=\"submit\" value=\"提出申請單\"> %1" - -#: etc/initialdata:218 -msgid "A blank template" -msgstr "空白範本" - -#: html/Admin/Users/Modify.html:371 -msgid "A password was not set, so user won't be able to login." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE Deleted" -msgstr "ACE 已刪除" - -#: NOT FOUND IN SOURCE -msgid "ACE Loaded" -msgstr "ACE 已載入" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be deleted" -msgstr "無法刪除 ACE" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be found" -msgstr "找不到 ACE" - -#: lib/RT/ACE_Overlay.pm:174 lib/RT/Principal_Overlay.pm:219 -msgid "ACE not found" -msgstr "找不到 ACE 設定" - -#: lib/RT/ACE_Overlay.pm:853 -msgid "ACEs can only be created and deleted." -msgstr "祇能新增或刪除 ACE 設定。" - -#: NOT FOUND IN SOURCE -msgid "ACLEquivalence" -msgstr "ACLEquivalence" - -#: html/Search/Elements/SelectAndOr:46 -msgid "AND" -msgstr "AND" - -#: NOT FOUND IN SOURCE -msgid "Aborting to avoid unintended ticket modifications.\\n" -msgstr "離開以免不小心更改到申請單。\\n" - -#: NOT FOUND IN SOURCE -msgid "About Me" -msgstr "個人資訊" - -#: html/User/Elements/Tabs:53 -msgid "About me" -msgstr "個人資訊" - -#: NOT FOUND IN SOURCE -msgid "Access Right" -msgstr "系統使用登錄權限" - -#: html/Admin/Users/Modify.html:106 -msgid "Access control" -msgstr "存取權限" - -#: html/Admin/Elements/EditScrip:65 -msgid "Action" -msgstr "動作" - -#: lib/RT/Scrip_Overlay.pm:172 -#. ($args{'ScripAction'}) -msgid "Action %1 not found" -msgstr "動作 %1 找不到" - -#: NOT FOUND IN SOURCE -msgid "Action committed." -msgstr "動作執行完畢" - -#: bin/rt-crontool:171 -msgid "Action committed.\\n" -msgstr "動作執行完畢。\\n" - -#: lib/RT/Scrip_Overlay.pm:168 -msgid "Action is mandatory argument" -msgstr "" - -#: bin/rt-crontool:167 -msgid "Action prepared..." -msgstr "動作準備完畢..." - -#: NOT FOUND IN SOURCE -msgid "Activated Date" -msgstr "申請啟動時間" - -#: html/Search/Build.html:85 -msgid "Add" -msgstr "新增" - -#: html/Search/Bulk.html:92 -msgid "Add AdminCc" -msgstr "新增管理員副本收件人" - -#: html/Search/Bulk.html:88 -msgid "Add Cc" -msgstr "新增副本收件人" - -#: html/Search/Elements/EditFormat:49 -msgid "Add Columns" -msgstr "" - -#: html/Search/Elements/PickCriteria:46 -msgid "Add Criteria" -msgstr "新增條件" - -#: NOT FOUND IN SOURCE -msgid "Add Entry" -msgstr "新增列" - -#: html/Ticket/Create.html:147 html/Ticket/Update.html:116 -msgid "Add More Files" -msgstr "新增更多附件" - -#: NOT FOUND IN SOURCE -msgid "Add Next State" -msgstr "新增下一項關卡" - -#: html/Search/Bulk.html:84 -msgid "Add Requestor" -msgstr "新增申請人" - -#: html/Admin/Elements/AddCustomFieldValue:46 -msgid "Add Value" -msgstr "新增欄位值" - -#: NOT FOUND IN SOURCE -msgid "Add a Scrip to this queue" -msgstr "新增此表單的手續" - -#: NOT FOUND IN SOURCE -msgid "Add a Scrip which will apply to all queues" -msgstr "新增適用於所有表單的手續" - -#: NOT FOUND IN SOURCE -msgid "Add a keyword selection to this queue" -msgstr "新增此表單的關鍵字" - -#: NOT FOUND IN SOURCE -msgid "Add a new a global scrip" -msgstr "新增全域手續" - -#: NOT FOUND IN SOURCE -msgid "Add a scrip to this queue" -msgstr "新增一道手續到此表單" - -#: html/Admin/Global/Scrip.html:83 -msgid "Add a scrip which will apply to all queues" -msgstr "新增一道用於所有表單的手續" - -#: NOT FOUND IN SOURCE -msgid "Add additional criteria" -msgstr "新增查詢條件" - -#: html/Search/Build.html:109 html/Search/Build.html:94 -msgid "Add and Search" -msgstr "" - -#: html/Search/Bulk.html:124 -msgid "Add comments or replies to selected tickets" -msgstr "新增評論或回覆到指定的申請單" - -#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 -msgid "Add members" -msgstr "新增成員" - -#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 -msgid "Add new watchers" -msgstr "新增視察員" - -#: html/Search/Build.html:85 -msgid "Add these terms to your search" -msgstr "" - -#: html/Search/Bulk.html:158 -msgid "Add values" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "Add, delete and modify custom field values for objects" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "AddNextState" -msgstr "新增下一項關卡" - -#: lib/RT/Queue_Overlay.pm:763 -#. ($args{'Type'}) -msgid "Added principal as a %1 for this queue" -msgstr "單位已新增為此表單的 %1" - -#: lib/RT/Ticket_Overlay.pm:1455 -#. ($self->loc($args{'Type'})) -msgid "Added principal as a %1 for this ticket" -msgstr "單位已新增為此申請單的 %1" - -#: NOT FOUND IN SOURCE -msgid "Additional Hints" -msgstr "額外提示" - -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 -msgid "Address1" -msgstr "住址" - -#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 -msgid "Address2" -msgstr "住址(續)" - -#: NOT FOUND IN SOURCE -msgid "Adjust Blinking Rate" -msgstr "調整閃爍速度快慢" - -#: NOT FOUND IN SOURCE -msgid "Admin" -msgstr "管理員" - -#: html/Ticket/Create.html:98 -msgid "Admin Cc" -msgstr "管理員副本" - -#: etc/initialdata:295 -msgid "Admin Comment" -msgstr "管理員評論" - -#: etc/initialdata:274 -msgid "Admin Correspondence" -msgstr "管理員回覆" - -#: NOT FOUND IN SOURCE -msgid "Admin Rights" -msgstr "管理員權限" - -#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 -msgid "Admin queues" -msgstr "表單管理" - -#: NOT FOUND IN SOURCE -msgid "Admin users" -msgstr "使用者管理" - -#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 -msgid "Admin/Global configuration" -msgstr "管理/全域設定" - -#: NOT FOUND IN SOURCE -msgid "Admin/Groups" -msgstr "管理/群組" - -#: NOT FOUND IN SOURCE -msgid "Admin/Queue/Basics" -msgstr "管理/表單/基本資訊" - -#: NOT FOUND IN SOURCE -msgid "AdminAddress" -msgstr "管理員 Email" - -#: NOT FOUND IN SOURCE -msgid "AdminAllPersonalGroups" -msgstr "管理所有代理人群組" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:113 -msgid "AdminCc" -msgstr "管理員副本" - -#: NOT FOUND IN SOURCE -msgid "AdminComment" -msgstr "管理員評論" - -#: NOT FOUND IN SOURCE -msgid "AdminCorrespondence" -msgstr "管理員回覆" - -#: lib/RT/CustomField_Overlay.pm:106 -msgid "AdminCustomField" -msgstr "管理自訂欄位" - -#: NOT FOUND IN SOURCE -msgid "AdminCustomFields" -msgstr "管理自訂欄位" - -#: lib/RT/Group_Overlay.pm:163 -msgid "AdminGroup" -msgstr "管理群組" - -#: NOT FOUND IN SOURCE -msgid "AdminGroupDescription" -msgstr "管理群組描述" - -#: lib/RT/Group_Overlay.pm:165 -msgid "AdminGroupMembership" -msgstr "管理群組成員" - -#: NOT FOUND IN SOURCE -msgid "AdminGroupName" -msgstr "管理群組名稱" - -#: NOT FOUND IN SOURCE -msgid "AdminGroupPermission" -msgstr "管理群組權限" - -#: NOT FOUND IN SOURCE -msgid "AdminGroupStatus" -msgstr "管理群組狀態" - -#: lib/RT/System.pm:80 -msgid "AdminOwnPersonalGroups" -msgstr "管理代理人群組" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "AdminQueue" -msgstr "管理表單" - -#: lib/RT/System.pm:81 -msgid "AdminUsers" -msgstr "管理使用者" - -#: NOT FOUND IN SOURCE -msgid "Administrative" -msgstr "行政類" - -#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 -msgid "Administrative Cc" -msgstr "管理員副本" - -#: NOT FOUND IN SOURCE -msgid "Admins" -msgstr "主管" - -#: html/Ticket/Elements/Tabs:216 -msgid "Advanced" -msgstr "進階" - -#: NOT FOUND IN SOURCE -msgid "Advanced Search" -msgstr "進階查詢" - -#: NOT FOUND IN SOURCE -msgid "Advanced Search Criteria" -msgstr "進階查詢條件" - -#: html/Elements/SelectDateRelation:57 -msgid "After" -msgstr "晚於" - -#: NOT FOUND IN SOURCE -msgid "Age" -msgstr "經歷時間" - -#: html/Search/Elements/PickCriteria:52 -msgid "Aggregator" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Alias" -msgstr "執行其他流程" - -#: NOT FOUND IN SOURCE -msgid "Alias for" -msgstr "相當於" - -#: NOT FOUND IN SOURCE -msgid "All" -msgstr "全部" - -#: etc/initialdata:363 -msgid "All Approvals Passed" -msgstr "完成全部簽核" - -#: NOT FOUND IN SOURCE -msgid "All Condition" -msgstr "所有條件" - -#: NOT FOUND IN SOURCE -msgid "All Custom Fields" -msgstr "所有自訂欄位" - -#: html/Admin/Queues/index.html:75 -msgid "All Queues" -msgstr "所有表單" - -#: NOT FOUND IN SOURCE -msgid "All Users" -msgstr "全體員工" - -#: NOT FOUND IN SOURCE -msgid "All done! Now you can proceed to %1." -msgstr "處理完畢!您現在可以繼續進行 %1。" - -#: NOT FOUND IN SOURCE -msgid "Allowance Request" -msgstr "福利補助申請" - -#: NOT FOUND IN SOURCE -msgid "Always sends a message to the requestors independent of message sender" -msgstr "無論寄件來源為何,一律寄信給申請人" - -#: NOT FOUND IN SOURCE -msgid "Amount" -msgstr "數額" - -#: html/Search/Elements/EditQuery:56 -msgid "And/Or" -msgstr "AND/OR" - -#: NOT FOUND IN SOURCE -msgid "Any Condition" -msgstr "任意條件" - -#: NOT FOUND IN SOURCE -msgid "Applies To" -msgstr "套用於" - -#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 -msgid "Applies to" -msgstr "套用於" - -#: html/Search/Edit.html:64 -msgid "Apply" -msgstr "套用" - -#: NOT FOUND IN SOURCE -msgid "Apply Template" -msgstr "引用範本" - -#: html/Search/Edit.html:64 -msgid "Apply your changes" -msgstr "套用更動" - -#: html/Elements/Tabs:77 -msgid "Approval" -msgstr "簽核" - -#: html/Approvals/Display.html:65 html/Approvals/Elements/ShowDependency:63 html/Approvals/index.html:86 -#. ($Ticket->Id, $Ticket->Subject) -#. ($ticket->id, $msg) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Approval #%1: %2" -msgstr "簽核單 #%1:%2" - -#: html/Approvals/index.html:75 -#. ($ticket->Id) -msgid "Approval #%1: Notes not recorded due to a system error" -msgstr "簽核單 #%1:系統錯誤,記錄失敗" - -#: html/Approvals/index.html:73 -#. ($ticket->Id) -msgid "Approval #%1: Notes recorded" -msgstr "簽核單 #%1:記錄完畢" - -#: NOT FOUND IN SOURCE -msgid "Approval Details" -msgstr "簽核細節" - -#: NOT FOUND IN SOURCE -msgid "Approval Due" -msgstr "簽核時限" - -#: NOT FOUND IN SOURCE -msgid "Approval Notes" -msgstr "簽核意見" - -#: etc/initialdata:351 -msgid "Approval Passed" -msgstr "完成某項簽核" - -#: etc/initialdata:374 -msgid "Approval Rejected" -msgstr "駁回某項簽核" - -#: NOT FOUND IN SOURCE -msgid "Approval Result" -msgstr "簽核結果" - -#: NOT FOUND IN SOURCE -msgid "Approval Status" -msgstr "核准結果" - -#: NOT FOUND IN SOURCE -msgid "Approval Type" -msgstr "簽核種類" - -#: NOT FOUND IN SOURCE -msgid "Approval diagram" -msgstr "簽核流程" - -#: html/Approvals/Elements/Approve:69 -msgid "Approve" -msgstr "核准" - -#: NOT FOUND IN SOURCE -msgid "Approver" -msgstr "簽核人" - -#: NOT FOUND IN SOURCE -msgid "Approver Setting" -msgstr "執行簽核人設定" - -#: etc/initialdata:504 -msgid "Approver's notes: %1" -msgstr "簽核備註:%1" - -#: NOT FOUND IN SOURCE -msgid "Apr" -msgstr "四月" - -#: lib/RT/Date.pm:444 -msgid "Apr." -msgstr "04" - -#: NOT FOUND IN SOURCE -msgid "April" -msgstr "四月" - -#: NOT FOUND IN SOURCE -msgid "Are you sure to delete checked items?" -msgstr "您確定要刪除?" - -#: html/Search/Elements/DisplayOptions:81 -msgid "Asc" -msgstr "" - -#: html/Elements/SelectSortOrder:56 -msgid "Ascending" -msgstr "遞增" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "Assign and remove custom fields" -msgstr "指派及移除自訂欄位" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "AssignCustomFields" -msgstr "指派自訂欄位" - -#: html/Search/Bulk.html:142 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:116 -msgid "Attach" -msgstr "附件" - -#: html/SelfService/Create.html:92 html/Ticket/Create.html:143 -msgid "Attach file" -msgstr "附加檔案" - -#: html/SelfService/Update.html:75 html/Ticket/Create.html:131 html/Ticket/Update.html:94 -msgid "Attached file" -msgstr "現有附件" - -#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 -#. ($Attachment) -msgid "Attachment '%1' could not be loaded" -msgstr "無法載入附件 '%1'" - -#: lib/RT/Transaction_Overlay.pm:489 -msgid "Attachment created" -msgstr "附件新增完畢" - -#: lib/RT/Tickets_Overlay.pm:1945 -msgid "Attachment filename" -msgstr "附件檔名" - -#: html/Ticket/Elements/ShowAttachments:47 -msgid "Attachments" -msgstr "附件" - -#: lib/RT/Attributes_Overlay.pm:171 -msgid "Attribute Deleted" -msgstr "已刪除該屬性" - -#: NOT FOUND IN SOURCE -msgid "Attributes" -msgstr "屬性" - -#: NOT FOUND IN SOURCE -msgid "Aug" -msgstr "八月" - -#: lib/RT/Date.pm:448 -msgid "Aug." -msgstr "08" - -#: NOT FOUND IN SOURCE -msgid "August" -msgstr "八月" - -#: NOT FOUND IN SOURCE -msgid "AuthSystem" -msgstr "認證方式" - -#: NOT FOUND IN SOURCE -msgid "AutoReject" -msgstr "自動駁回表單" - -#: NOT FOUND IN SOURCE -msgid "AutoResolve" -msgstr "自動完成表單處理" - -#: etc/initialdata:221 -msgid "Autoreply" -msgstr "自動回覆" - -#: etc/initialdata:72 -msgid "Autoreply To Requestors" -msgstr "自動對申請人回覆" - -#: NOT FOUND IN SOURCE -msgid "AutoreplyToRequestors" -msgstr "自動對申請人回覆" - -#: html/Widgets/SelectionBox:185 -msgid "Available" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Available Columns" -msgstr "可用的欄位:" - -#: NOT FOUND IN SOURCE -msgid "Available Rights:" -msgstr "權限項目列表:" - -#: NOT FOUND IN SOURCE -msgid "Back to Homepage" -msgstr "回到首頁" - -#: NOT FOUND IN SOURCE -msgid "Back to Previous" -msgstr "回上頁" - -#: NOT FOUND IN SOURCE -msgid "Bad PGP Signature: %1\\n" -msgstr "錯誤的 PGP 簽章:%1\\n" - -#: NOT FOUND IN SOURCE -msgid "Bad attachment id. Couldn't find attachment '%1'\\n" -msgstr "錯誤的附件編號。無法找到附件 '%1'\\n" - -#: NOT FOUND IN SOURCE -msgid "Bad data in %1" -msgstr "%1 的資料錯誤" - -#: NOT FOUND IN SOURCE -msgid "Bad transaction number for attachment. %1 should be %2\\n" -msgstr "附件的處理號碼錯誤。%1 應為 %2\\n" - -#: html/Admin/Elements/CustomFieldTabs:65 html/Admin/Elements/GroupTabs:60 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/UserTabs:58 html/Ticket/Elements/Tabs:113 html/User/Elements/GroupTabs:59 -msgid "Basics" -msgstr "基本資訊" - -#: NOT FOUND IN SOURCE -msgid "Batch Approval" -msgstr "批次簽核" - -#: html/Ticket/Update.html:88 -msgid "Bcc" -msgstr "密件副本" - -#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:89 -msgid "Be sure to save your changes" -msgstr "請別忘了儲存修改。" - -#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:361 -msgid "Before" -msgstr "早於" - -#: NOT FOUND IN SOURCE -msgid "Begin Approval" -msgstr "開始簽核" - -#: NOT FOUND IN SOURCE -msgid "Begin From " -msgstr "起始日" - -#: html/Elements/Logo:47 -msgid "Best Practical Solutions, LLC corporate logo" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Binary" -msgstr "檔案" - -#: NOT FOUND IN SOURCE -msgid "Birthday" -msgstr "生日" - -#: etc/initialdata:217 -msgid "Blank" -msgstr "空白範本" - -#: html/Search/Elements/EditFormat:84 -msgid "Bold" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bookmarkable URL for this search" -msgstr "將查詢結果轉為可放入書籤的網址" - -#: html/Search/Results.html:79 -msgid "Bookmarkable link" -msgstr "可放入書籤的網址" - -#: html/Ticket/Elements/ShowHistory:64 html/Ticket/Elements/ShowHistory:69 -msgid "Brief headers" -msgstr "精簡標頭檔" - -#: html/Ticket/Elements/Tabs:227 -msgid "Bulk Update" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bulk ticket update" -msgstr "更新整批申請單" - -#: NOT FOUND IN SOURCE -msgid "Business Unit" -msgstr "事業部" - -#: NOT FOUND IN SOURCE -msgid "Business Unit:" -msgstr "事業部:" - -#: lib/RT/User_Overlay.pm:1853 -msgid "Can not modify system users" -msgstr "無法更改系統使用者" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "Can this principal see this queue" -msgstr "該單位是否能查閱此表單" - -#: lib/RT/CustomField_Overlay.pm:379 -msgid "Can't add a custom field value without a name" -msgstr "不能新增沒有名稱的自訂欄位值" - -#: html/Admin/CustomFields/Objects.html:86 -#. ($Class) -msgid "Can't find a collection class for '%1'" -msgstr "" - -#: html/Search/Build.html:286 -msgid "Can't find a saved search to work with" -msgstr "找不到已儲存的查詢" - -#: lib/RT/Link_Overlay.pm:159 -msgid "Can't link a ticket to itself" -msgstr "申請單不能鏈結自己。" - -#: NOT FOUND IN SOURCE -msgid "Can't merge into a merged ticket. You should never get this error" -msgstr "不能整合進已整合過的申請單。這個錯誤不該發生。" - -#: html/Widgets/SavedSearch:63 -#. (loc($self->{SearchType})) -msgid "Can't save %1" -msgstr "無法儲存 %1" - -#: html/Search/Build.html:290 -msgid "Can't save this search" -msgstr "無法儲存此項查詢" - -#: lib/RT/Record.pm:1282 lib/RT/Record.pm:1358 -msgid "Can't specifiy both base and target" -msgstr "不能同時指定起始申請單與目的申請單" - -#: NOT FOUND IN SOURCE -msgid "Cancel" -msgstr "取消" - -#: html/autohandler:204 -#. ($msg) -msgid "Cannot create user: %1" -msgstr "無法新增使用者:%1" - -#: NOT FOUND IN SOURCE -msgid "Cannot login: Your system clock differs from server's by %1 seconds!" -msgstr "您的系統時鐘和伺服器相差 %1 秒,無法登入!" - -#: NOT FOUND IN SOURCE -msgid "Card No." -msgstr "卡號" - -#: NOT FOUND IN SOURCE -msgid "Categories" -msgstr "分類管理" - -#: html/Admin/Elements/AddCustomFieldValue:62 html/Admin/Elements/EditCustomFieldValues:58 -msgid "Category" -msgstr "分類" - -#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:88 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:83 lib/RT/ACE_Overlay.pm:112 -msgid "Cc" -msgstr "副本" - -#: NOT FOUND IN SOURCE -msgid "Cc Type" -msgstr "副本類別" - -#: NOT FOUND IN SOURCE -msgid "Chairperson's Office" -msgstr "董事長室" - -#: NOT FOUND IN SOURCE -msgid "Change Ticket" -msgstr "修改申請單" - -#: html/SelfService/Prefs.html:52 -msgid "Change password" -msgstr "更改密碼" - -#: NOT FOUND IN SOURCE -msgid "ChangeOwnerUI" -msgstr "可否選擇表單承辦人" - -#: html/Elements/Submit:78 -msgid "Check All" -msgstr "全部選取" - -#: html/SelfService/Update.html:78 html/Ticket/Create.html:134 html/Ticket/Update.html:97 -msgid "Check box to delete" -msgstr "選擇欲刪除的項目" - -#: html/Admin/Elements/SelectRights:55 -msgid "Check box to revoke right" -msgstr "選擇欲撤消的權利" - -#: html/Elements/EditLinks:148 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:223 html/Ticket/Elements/BulkLinks:64 -msgid "Children" -msgstr "子申請單" - -#: NOT FOUND IN SOURCE -msgid "Chinese Name" -msgstr "中文姓名" - -#: NOT FOUND IN SOURCE -msgid "Chinese/English" -msgstr "中英文" - -#: html/NoAuth/js/util.js:201 -msgid "Choose a date" -msgstr "" - -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 -msgid "City" -msgstr "所在城市" - -#: NOT FOUND IN SOURCE -msgid "ClassicUI" -msgstr "傳統介面" - -#: html/Elements/Submit:80 -msgid "Clear All" -msgstr "全部清除" - -#: html/Helpers/CalPopup.html:51 -msgid "Close window" -msgstr "關閉視窗" - -#: html/Ticket/Elements/ShowDates:68 -msgid "Closed" -msgstr "已解決" - -#: NOT FOUND IN SOURCE -msgid "Closed Tickets" -msgstr "已解決的申請單" - -#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:78 -msgid "Closed tickets" -msgstr "已解決的申請單" - -#: NOT FOUND IN SOURCE -msgid "Code" -msgstr "執行程式碼" - -#: lib/RT/CustomField_Overlay.pm:89 -msgid "Combobox: Select or enter multiple values" -msgstr "下拉文字框:選擇或鍵入多重項目" - -#: lib/RT/CustomField_Overlay.pm:90 -msgid "Combobox: Select or enter one value" -msgstr "下拉文字框:選擇或鍵入單一項目" - -#: lib/RT/CustomField_Overlay.pm:91 -msgid "Combobox: Select or enter up to %1 values" -msgstr "下拉文字框:選擇或鍵入最多 %1 個項目" - -#: NOT FOUND IN SOURCE -msgid "Command not understood!\\n" -msgstr "指令無法辨識!\\n" - -#: html/Ticket/Elements/ShowTransaction:190 html/Ticket/Elements/Tabs:185 -msgid "Comment" -msgstr "評論" - -#: html/Admin/Queues/Modify.html:79 -msgid "Comment Address" -msgstr "評論電子郵件地址" - -#: NOT FOUND IN SOURCE -msgid "Comment not recorded" -msgstr "評論未被紀錄" - -#: lib/RT/Queue_Overlay.pm:111 -msgid "Comment on tickets" -msgstr "對申請單提出評論" - -#: lib/RT/Queue_Overlay.pm:111 -msgid "CommentOnTicket" -msgstr "評論申請單" - -#: NOT FOUND IN SOURCE -msgid "Comments" -msgstr "評論" - -#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:75 -msgid "Comments (Not sent to requestors)" -msgstr "評論(不送給申請人)" - -#: html/Search/Bulk.html:128 -msgid "Comments (not sent to requestors)" -msgstr "評論(不送給申請人)" - -#: NOT FOUND IN SOURCE -msgid "Comments about %1" -msgstr "對 %1 的評論" - -#: html/Admin/Users/Modify.html:225 html/Ticket/Elements/ShowRequestor:67 -msgid "Comments about this user" -msgstr "使用者描述" - -#: lib/RT/Transaction_Overlay.pm:634 -msgid "Comments added" -msgstr "新增評論完畢" - -#: NOT FOUND IN SOURCE -msgid "Commit" -msgstr "確認" - -#: lib/RT/Action/Generic.pm:175 -msgid "Commit Stubbed" -msgstr "消除更動完畢" - -#: NOT FOUND IN SOURCE -msgid "Company Name" -msgstr "公司名稱" - -#: NOT FOUND IN SOURCE -msgid "CompanySpecific" -msgstr "各公司獨立顯示" - -#: NOT FOUND IN SOURCE -msgid "Compile Restrictions" -msgstr "設定查詢條件" - -#: html/Admin/Elements/EditScrip:59 -msgid "Condition" -msgstr "條件" - -#: lib/RT/Scrip_Overlay.pm:184 -msgid "Condition is mandatory argument" -msgstr "條件是必填欄位" - -#: bin/rt-crontool:151 -msgid "Condition matches..." -msgstr "符合條件..." - -#: lib/RT/Scrip_Overlay.pm:188 -msgid "Condition not found" -msgstr "未找到符合的現況" - -#: html/Elements/Tabs:84 -msgid "Configuration" -msgstr "設定" - -#: html/SelfService/Prefs.html:54 -msgid "Confirm" -msgstr "確認密碼" - -#: NOT FOUND IN SOURCE -msgid "Confirm Password" -msgstr "密碼確認" - -#: NOT FOUND IN SOURCE -msgid "Confirm Submit" -msgstr "確定送出" - -#: NOT FOUND IN SOURCE -msgid "Contact System Administrator" -msgstr "連絡系統管理員" - -#: NOT FOUND IN SOURCE -msgid "ContactInfoSystem" -msgstr "連絡資訊系統" - -#: NOT FOUND IN SOURCE -msgid "Contacted date '%1' could not be parsed" -msgstr "無法解讀聯絡日期 '%1'" - -#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 -msgid "Content" -msgstr "內容" - -#: html/Elements/SelectAttachmentField:49 -msgid "Content-Type" -msgstr "內容類型" - -#: NOT FOUND IN SOURCE -msgid "Coould not create group" -msgstr "無法新增群組" - -#: html/Search/Elements/EditSearches:65 -msgid "Copy" -msgstr "複製" - -#: NOT FOUND IN SOURCE -msgid "Copy Field From:" -msgstr "欲複製欄位:" - -#: etc/initialdata:286 -msgid "Correspondence" -msgstr "回覆" - -#: NOT FOUND IN SOURCE -msgid "Correspondence Address" -msgstr "申請單回覆地址" - -#: lib/RT/Transaction_Overlay.pm:630 -msgid "Correspondence added" -msgstr "新增申請單回覆" - -#: NOT FOUND IN SOURCE -msgid "Correspondence not recorded" -msgstr "未紀錄申請單回覆" - -#: NOT FOUND IN SOURCE -msgid "Could not add new custom field value for ticket. " -msgstr "不能新增自訂欄位的值。" - -#: NOT FOUND IN SOURCE -msgid "Could not add new custom field value for ticket. %1 " -msgstr "不能新增自訂欄位的值。%1 " - -#: lib/RT/Record.pm:1707 -msgid "Could not add new custom field value. " -msgstr "不能新增自訂欄位的值。" - -#: lib/RT/Record.pm:1660 -#. (, $value_msg) -msgid "Could not add new custom field value. %1 " -msgstr "不能新增自訂欄位的值。%1 " - -#: lib/RT/Ticket_Overlay.pm:3048 lib/RT/Ticket_Overlay.pm:3056 lib/RT/Ticket_Overlay.pm:3073 -msgid "Could not change owner. " -msgstr "不能更改承辦人。" - -#: html/Admin/CustomFields/Modify.html:161 -#. ($msg) -msgid "Could not create CustomField" -msgstr "無法新增自訂欄位" - -#: html/Admin/Elements/EditCustomField:113 -#. ($msg) -msgid "Could not create CustomField: %1" -msgstr "無法新增自訂欄位:%1" - -#: NOT FOUND IN SOURCE -msgid "Could not create Scrip" -msgstr "無法建立訊息通知" - -#: NOT FOUND IN SOURCE -msgid "Could not create Template" -msgstr "無法建立通知範本" - -#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:494 lib/RT/Group_Overlay.pm:501 -msgid "Could not create group" -msgstr "無法新增群組" - -#: NOT FOUND IN SOURCE -msgid "Could not create item" -msgstr "無法新增項目" - -#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 -#. ($msg) -msgid "Could not create template: %1" -msgstr "無法新增範本:%1" - -#: lib/RT/Ticket_Overlay.pm:1075 lib/RT/Ticket_Overlay.pm:407 -msgid "Could not create ticket. Queue not set" -msgstr "無法新增申請單。尚未指定表單。" - -#: lib/RT/User_Overlay.pm:255 lib/RT/User_Overlay.pm:269 lib/RT/User_Overlay.pm:278 lib/RT/User_Overlay.pm:287 lib/RT/User_Overlay.pm:296 lib/RT/User_Overlay.pm:310 lib/RT/User_Overlay.pm:320 lib/RT/User_Overlay.pm:496 -msgid "Could not create user" -msgstr "無法新增使用者" - -#: NOT FOUND IN SOURCE -msgid "Could not create watcher for requestor" -msgstr "無法為申請人新增視察員" - -#: NOT FOUND IN SOURCE -msgid "Could not create workflow: %1" -msgstr "無法新增流程:%1" - -#: NOT FOUND IN SOURCE -msgid "Could not find a ticket with id %1" -msgstr "找不到編號 %1 的申請單" - -#: NOT FOUND IN SOURCE -msgid "Could not find group %1." -msgstr "找不到群組 %1。" - -#: lib/RT/Queue_Overlay.pm:741 lib/RT/Ticket_Overlay.pm:1423 -msgid "Could not find or create that user" -msgstr "找不到或無法新增該名使用者" - -#: lib/RT/Queue_Overlay.pm:802 lib/RT/Ticket_Overlay.pm:1504 -msgid "Could not find that principal" -msgstr "找不到該單位" - -#: NOT FOUND IN SOURCE -msgid "Could not find user %1." -msgstr "找不到使用者 %1。" - -#: html/Admin/CustomFields/Objects.html:69 -msgid "Could not load CustomField %1" -msgstr "無法載入欄位 %1" - -#: html/Admin/Groups/Members.html:112 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 -msgid "Could not load group" -msgstr "無法載入群組" - -#: lib/RT/SavedSearch.pm:119 -#. ($privacy) -msgid "Could not load object for %1" -msgstr "無法為 %1 載入物件" - -#: lib/RT/SavedSearch.pm:197 -msgid "Could not load search attribute" -msgstr "無法載入查詢屬性" - -#: lib/RT/Queue_Overlay.pm:761 -#. ($args{'Type'}) -msgid "Could not make that principal a %1 for this queue" -msgstr "無法將該單位設為此表單的 %1。" - -#: lib/RT/Ticket_Overlay.pm:1444 -#. ($self->loc($args{'Type'})) -msgid "Could not make that principal a %1 for this ticket" -msgstr "無法將該單位設為此申請單的 %1。" - -#: lib/RT/Queue_Overlay.pm:860 -#. ($args{'Type'}) -msgid "Could not remove that principal as a %1 for this queue" -msgstr "無法將單位 %1 從表單移除。" - -#: NOT FOUND IN SOURCE -msgid "Could not remove that principal as a %1 for this ticket" -msgstr "無法將單位 %1 從申請單移除。" - -#: lib/RT/User_Overlay.pm:191 -msgid "Could not set user info" -msgstr "無法設定使用者資訊" - -#: lib/RT/Transaction_Overlay.pm:159 -msgid "Couldn't add attachment" -msgstr "無法新增附件" - -#: lib/RT/Group_Overlay.pm:1003 -msgid "Couldn't add member to group" -msgstr "無法新增成員至群組" - -#: lib/RT/Record.pm:1719 lib/RT/Record.pm:1771 -#. ($Msg) -msgid "Couldn't create a transaction: %1" -msgstr "無法新增更動報告" - -#: NOT FOUND IN SOURCE -msgid "Couldn't figure out what to do from gpg's reply\\n" -msgstr "無法從 gpg 回函辨識出該採取的行動\\n" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find group\\n" -msgstr "找不到群組\\n" - -#: lib/RT/Record.pm:953 -msgid "Couldn't find row" -msgstr "找不到此列資料" - -#: lib/RT/Group_Overlay.pm:977 -msgid "Couldn't find that principal" -msgstr "找不到該單位" - -#: lib/RT/CustomField_Overlay.pm:409 -msgid "Couldn't find that value" -msgstr "找不到該值" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find that watcher" -msgstr "找不到該視察員" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find user\\n" -msgstr "找不到使用者\\n" - -#: lib/RT/CurrentUser.pm:145 -#. ($self->Id) -msgid "Couldn't load %1 from the users database.\\n" -msgstr "無法從使用者資料庫載入 %1。\\n" - -#: html/Admin/CustomFields/UserRights.html:149 -#. ($id) -msgid "Couldn't load Class %1" -msgstr "無法載入類別 %1" - -#: html/Admin/CustomFields/GroupRights.html:107 -#. ($id) -msgid "Couldn't load CustomField %1" -msgstr "無法載入自訂欄位 %1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load KeywordSelects." -msgstr "無法載入 KeywordSelects。" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load RT config file '%1' %2" -msgstr "無法載入 RT 設定檔 '%1' %2" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load Scrips." -msgstr "無法載入手續。" - -#: lib/RT/Ticket_Overlay.pm:2016 -#. ($self->Id) -msgid "Couldn't load copy of ticket #%1." -msgstr "" - -#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 -#. ($id) -msgid "Couldn't load group %1" -msgstr "無法載入手續 %1" - -#: lib/RT/Link_Overlay.pm:202 lib/RT/Link_Overlay.pm:211 lib/RT/Link_Overlay.pm:238 -msgid "Couldn't load link" -msgstr "無法載入鏈結。" - -#: html/Admin/Elements/ObjectCustomFields:83 html/Admin/Queues/CustomFields.html:59 html/Admin/Users/CustomFields.html:59 -#. ($id) -msgid "Couldn't load object %1" -msgstr "無法載入物件 %1" - -#: html/Admin/Queues/People.html:142 -#. ($id) -msgid "Couldn't load queue" -msgstr "無法載入表單" - -#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 -#. ($id) -msgid "Couldn't load queue %1" -msgstr "無法載入表單 %1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load scrip" -msgstr "無法載入手續" - -#: html/Admin/Elements/EditScrip:126 html/Admin/Elements/EditScrip:167 -#. ($id) -msgid "Couldn't load scrip #%1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load template" -msgstr "無法載入範本" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load that user (%1)" -msgstr "無法載入該名使用者(%1)" - -#: html/SelfService/Display.html:158 lib/RT/Action/CreateTickets.pm:680 -#. ($id) -msgid "Couldn't load ticket '%1'" -msgstr "無法載入申請單 '%1'" - -#: lib/RT/Ticket_Overlay.pm:2643 -#. ($args{'URI'}) -msgid "Couldn't resolve '%1' into a URI." -msgstr "" - -#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 -msgid "Country" -msgstr "國家" - -#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:133 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:65 html/Ticket/Create.html:168 html/Ticket/Create.html:235 -msgid "Create" -msgstr "新增" - -#: NOT FOUND IN SOURCE -msgid "Create Subgroup:" -msgstr "新增子群組:" - -#: etc/initialdata:135 -msgid "Create Tickets" -msgstr "新增申請單" - -#: NOT FOUND IN SOURCE -msgid "Create User:" -msgstr "新增成員:" - -#: html/Admin/CustomFields/Modify.html:150 html/Admin/Elements/EditCustomField:96 -msgid "Create a CustomField" -msgstr "新增自訂欄位" - -#: html/Admin/Queues/CustomField.html:69 -#. ($QueueObj->Name()) -msgid "Create a CustomField for queue %1" -msgstr "為 %1 表單新增自訂欄位" - -#: NOT FOUND IN SOURCE -msgid "Create a CustomField that applies to all queues" -msgstr "為 %1 表單新增自訂欄位" - -#: NOT FOUND IN SOURCE -msgid "Create a new Custom Field" -msgstr "新增自訂欄位" - -#: NOT FOUND IN SOURCE -msgid "Create a new global Scrip" -msgstr "新增全域手續" - -#: NOT FOUND IN SOURCE -msgid "Create a new global scrip" -msgstr "新增全域手續" - -#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 -msgid "Create a new group" -msgstr "新增群組" - -#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 -msgid "Create a new personal group" -msgstr "新增代理人群組" - -#: NOT FOUND IN SOURCE -msgid "Create a new queue" -msgstr "新增表單" - -#: NOT FOUND IN SOURCE -msgid "Create a new scrip" -msgstr "新增手續" - -#: NOT FOUND IN SOURCE -msgid "Create a new template" -msgstr "新增範本" - -#: html/Ticket/Create.html:47 html/Ticket/Create.html:51 html/Ticket/Create.html:60 -msgid "Create a new ticket" -msgstr "新增申請單" - -#: html/Admin/Users/Modify.html:252 html/Admin/Users/Modify.html:314 -msgid "Create a new user" -msgstr "新增使用者" - -#: NOT FOUND IN SOURCE -msgid "Create a new workflow" -msgstr "新增流程" - -#: html/Admin/Queues/Modify.html:125 -msgid "Create a queue" -msgstr "新增表單" - -#: NOT FOUND IN SOURCE -msgid "Create a queue called" -msgstr "新增表單名稱" - -#: NOT FOUND IN SOURCE -msgid "Create a request" -msgstr "提出申請" - -#: html/Admin/Queues/Scrip.html:89 -#. ($QueueObj->Name) -msgid "Create a scrip for queue %1" -msgstr "為 %1 表單新增手續" - -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 -msgid "Create a template" -msgstr "新增範本" - -#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 -msgid "Create a ticket" -msgstr "提出申請單" - -#: NOT FOUND IN SOURCE -msgid "Create a workflow" -msgstr "新增流程" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1 / %2 / %3 " -msgstr "新增失敗:%1 / %2 / %3" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1/%2/%3" -msgstr "新增失敗:%1/%2/%3" - -#: NOT FOUND IN SOURCE -msgid "Create new item" -msgstr "建立新項目" - -#: etc/initialdata:137 -msgid "Create new tickets based on this scrip's template" -msgstr "依據此項手續內的模版,新增申請單" - -#: html/SelfService/Create.html:105 -msgid "Create ticket" -msgstr "新增申請單" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "Create tickets in this queue" -msgstr "在此表單中新增申請單" - -#: lib/RT/CustomField_Overlay.pm:106 -msgid "Create, delete and modify custom fields" -msgstr "新增、刪除及更改自訂欄位" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "Create, delete and modify queues" -msgstr "新增、刪除及更改表單" - -#: NOT FOUND IN SOURCE -msgid "Create, delete and modify the members of any user's personal groups" -msgstr "新增、刪除及更改任何使用者的代理人群組" - -#: lib/RT/System.pm:80 -msgid "Create, delete and modify the members of personal groups" -msgstr "新增、刪除及更改代理人群組" - -#: lib/RT/System.pm:81 -msgid "Create, delete and modify users" -msgstr "新增、刪除及更改使用者" - -#: lib/RT/System.pm:87 -msgid "CreateSavedSearch" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "CreateTicket" -msgstr "新增申請單" - -#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1169 -msgid "Created" -msgstr "新增日" - -#: html/Admin/CustomFields/Modify.html:163 html/Admin/Elements/EditCustomField:117 -#. ($CustomFieldObj->Name()) -msgid "Created CustomField %1" -msgstr "自訂欄位 %1 新增成功" - -#: html/Tools/Reports/Elements/Tabs:63 -msgid "Created in a date range" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created template %1" -msgstr "範本 %1 新增成功" - -#: html/Tools/Reports/CreatedByDates.html:52 -msgid "Created tickets in period, grouped by status" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created workflow %1" -msgstr "流程 %1 新增成功" - -#: html/Search/Elements/PickBasics:102 -msgid "Creator" -msgstr "建立者" - -#: NOT FOUND IN SOURCE -msgid "Currency" -msgstr "幣別" - -#: NOT FOUND IN SOURCE -msgid "Current Approval Info" -msgstr "截至目前簽核資訊" - -#: NOT FOUND IN SOURCE -msgid "Current Custom Fields" -msgstr "現有自訂欄位" - -#: NOT FOUND IN SOURCE -msgid "Current Groups:" -msgstr "現有群組列表:" - -#: html/Elements/EditLinks:49 -msgid "Current Links" -msgstr "現有關係" - -#: NOT FOUND IN SOURCE -msgid "Current Rights:" -msgstr "現有權限:" - -#: html/Admin/Elements/EditScrips:51 -msgid "Current Scrips" -msgstr "現有手續" - -#: NOT FOUND IN SOURCE -msgid "Current Status" -msgstr "目前狀態" - -#: NOT FOUND IN SOURCE -msgid "Current Templates" -msgstr "現有範本" - -#: NOT FOUND IN SOURCE -msgid "Current Watchers" -msgstr "現有視察員" - -#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 -msgid "Current members" -msgstr "現有成員" - -#: html/Admin/Elements/SelectRights:51 -msgid "Current rights" -msgstr "現有權限" - -#: html/Search/Elements/EditQuery:47 -msgid "Current search" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Current search criteria" -msgstr "現有查詢條件" - -#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 -msgid "Current watchers" -msgstr "現有視察員" - -#: NOT FOUND IN SOURCE -msgid "Custom Field #%1" -msgstr "自訂欄位 #%1" - -#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:205 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:56 -msgid "Custom Fields" -msgstr "自訂欄位" - -#: html/Admin/CustomFields/index.html:60 -#. ($lookup) -msgid "Custom Fields for %1" -msgstr "%1 的自訂欄位" - -#: NOT FOUND IN SOURCE -msgid "Custom Fields which apply to all queues" -msgstr "適用於所有表單的自訂欄位" - -#: html/Admin/Elements/EditScrip:107 -msgid "Custom action cleanup code" -msgstr "動作後執行程式" - -#: html/Admin/Elements/EditScrip:103 -msgid "Custom action preparation code" -msgstr "動作前執行程式" - -#: html/Admin/Elements/EditScrip:99 -msgid "Custom condition" -msgstr "自訂條件" - -#: NOT FOUND IN SOURCE -msgid "Custom field %1 %2 %3" -msgstr "自訂欄位 %1 %2 %3" - -#: NOT FOUND IN SOURCE -msgid "Custom field %1 does not apply to this object" -msgstr "自訂欄位 %1 不適用於此物件" - -#: lib/RT/Tickets_Overlay.pm:2424 -#. ($CF->Name) -msgid "Custom field %1 has a value." -msgstr "自訂欄位 %1 已有值" - -#: lib/RT/Tickets_Overlay.pm:2420 -#. ($CF->Name) -msgid "Custom field %1 has no value." -msgstr "自訂欄位 %1 沒有值" - -#: lib/RT/Record.pm:1592 lib/RT/Record.pm:1754 -#. ($args{'Field'}) -msgid "Custom field %1 not found" -msgstr "找不到自訂欄位 %1" - -#: lib/RT/Report/Tickets.pm:118 lib/RT/Report/Tickets.pm:121 -#. ($cf) -#. ($obj->Name) -msgid "Custom field '%1'" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Custom field deleted" -msgstr "自訂欄位已刪除" - -#: NOT FOUND IN SOURCE -msgid "Custom field not found" -msgstr "找不到自訂欄位" - -#: lib/RT/CustomField_Overlay.pm:1157 -#. ($args{'Content'}, $self->Name) -msgid "Custom field value %1 could not be found for custom field %2" -msgstr "無法從自訂欄位 %2 中找到 %1 這個欄位值" - -#: NOT FOUND IN SOURCE -msgid "Custom field value changed from %1 to %2" -msgstr "自訂欄位值從 %1 改為 %2" - -#: lib/RT/CustomField_Overlay.pm:419 -msgid "Custom field value could not be deleted" -msgstr "無法刪除自訂欄位值" - -#: lib/RT/CustomField_Overlay.pm:1169 -msgid "Custom field value could not be found" -msgstr "找不到自訂欄位值" - -#: lib/RT/CustomField_Overlay.pm:1171 lib/RT/CustomField_Overlay.pm:417 -msgid "Custom field value deleted" -msgstr "自訂欄位值刪除成功" - -#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:638 -msgid "CustomField" -msgstr "自訂欄位" - -#: html/Prefs/MyRT.html:78 html/Prefs/Quicksearch.html:70 html/Prefs/Search.html:75 -msgid "Customize" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Data error" -msgstr "資料錯誤" - -#: NOT FOUND IN SOURCE -msgid "DatabaseBindRemote" -msgstr "容許外部連線" - -#: NOT FOUND IN SOURCE -msgid "DatabaseName" -msgstr "MySQL資料庫" - -#: NOT FOUND IN SOURCE -msgid "Date of Departure" -msgstr "出發日期" - -#: html/SelfService/Display.html:61 html/Ticket/Create.html:203 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 -msgid "Dates" -msgstr "日期" - -#: NOT FOUND IN SOURCE -msgid "Dec" -msgstr "十二月" - -#: lib/RT/Date.pm:452 -msgid "Dec." -msgstr "12" - -#: NOT FOUND IN SOURCE -msgid "December" -msgstr "十二月" - -#: NOT FOUND IN SOURCE -msgid "Default Approval" -msgstr "預設簽核" - -#: NOT FOUND IN SOURCE -msgid "Default Autoresponse Template" -msgstr "預設自動回應範本" - -#: etc/initialdata:222 -msgid "Default Autoresponse template" -msgstr "預設自動回應範本" - -#: html/Tools/Offline.html:61 -msgid "Default Queue" -msgstr "預設表單" - -#: html/Tools/Offline.html:70 -msgid "Default Requestor" -msgstr "預設申請人" - -#: NOT FOUND IN SOURCE -msgid "Default Value" -msgstr "預設值" - -#: etc/initialdata:296 -msgid "Default admin comment template" -msgstr "預設管理員評論範本" - -#: etc/initialdata:275 -msgid "Default admin correspondence template" -msgstr "預設管理員回覆範本" - -#: etc/initialdata:287 -msgid "Default correspondence template" -msgstr "預設回覆範本" - -#: etc/initialdata:253 -msgid "Default transaction template" -msgstr "預設更動範本" - -#: NOT FOUND IN SOURCE -msgid "Default: %1/%2 changed from %3 to %4" -msgstr "預設:%1/%2 已自 %3 改為 %4" - -#: NOT FOUND IN SOURCE -msgid "DefaultApproval" -msgstr "預設簽核" - -#: html/User/Delegation.html:46 html/User/Delegation.html:49 -msgid "Delegate rights" -msgstr "代理人權限" - -#: lib/RT/System.pm:84 -msgid "Delegate specific rights which have been granted to you." -msgstr "將擁有的權限委託他人代理" - -#: lib/RT/System.pm:84 -msgid "DelegateRights" -msgstr "設定代理人" - -#: NOT FOUND IN SOURCE -msgid "Delegated Approval" -msgstr "代理簽核" - -#: NOT FOUND IN SOURCE -msgid "Delegated Queue" -msgstr "代理表單名稱" - -#: NOT FOUND IN SOURCE -msgid "Delegated Queue:" -msgstr "代理表單:" - -#: NOT FOUND IN SOURCE -msgid "Delegated Type" -msgstr "代理表單種類" - -#: NOT FOUND IN SOURCE -msgid "Delegates" -msgstr "代理人" - -#: NOT FOUND IN SOURCE -msgid "Delegates Enabled Status" -msgstr "代理啟動狀態" - -#: NOT FOUND IN SOURCE -msgid "Delegates Info" -msgstr "代理人資訊" - -#: NOT FOUND IN SOURCE -msgid "Delegates Period" -msgstr "代理期間" - -#: NOT FOUND IN SOURCE -msgid "Delegates Permission Setting" -msgstr "代理權限設定" - -#: NOT FOUND IN SOURCE -msgid "Delegates Permission:" -msgstr "代理權限:" - -#: NOT FOUND IN SOURCE -msgid "Delegates Setting" -msgstr "代理人設定" - -#: NOT FOUND IN SOURCE -msgid "Delegates Status" -msgstr "代理狀態" - -#: html/User/Elements/Tabs:59 -msgid "Delegation" -msgstr "代理人權限" - -#: NOT FOUND IN SOURCE -msgid "Delegation Groups" -msgstr "代理人群組" - -#: NOT FOUND IN SOURCE -msgid "Delegation Rights" -msgstr "代理人權限" - -#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 html/Widgets/SelectionBox:204 -msgid "Delete" -msgstr "刪除" - -#: html/Admin/Elements/EditTemplates:79 -msgid "Delete Template" -msgstr "刪除範本" - -#: lib/RT/SavedSearch.pm:220 -#. ($msg) -msgid "Delete failed: %1" -msgstr "" - -#: html/Admin/Elements/EditScrips:74 -msgid "Delete selected scrips" -msgstr "刪除指定的手續" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "Delete tickets" -msgstr "刪除申請單" - -#: html/Search/Bulk.html:159 -msgid "Delete values" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "DeleteTicket" -msgstr "刪除申請單" - -#: lib/RT/SavedSearch.pm:218 -msgid "Deleted search" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Deleting this object could break referential integrity" -msgstr "刪除此物件可能破壞參考完整性" - -#: lib/RT/Queue_Overlay.pm:394 -msgid "Deleting this object would break referential integrity" -msgstr "刪除此物件可能破壞參考完整性" - -#: lib/RT/User_Overlay.pm:512 -msgid "Deleting this object would violate referential integrity" -msgstr "刪除此物件會違反參考完整性" - -#: NOT FOUND IN SOURCE -msgid "Deleting this object would violate referential integrity." -msgstr "刪除此物件會違反參考完整性" - -#: NOT FOUND IN SOURCE -msgid "Deleting this object would violate referential integrity. That's bad." -msgstr "刪除此物件會違反參考完整性" - -#: html/Approvals/Elements/Approve:73 -msgid "Deny" -msgstr "駁回" - -#: NOT FOUND IN SOURCE -msgid "Department" -msgstr "部門" - -#: NOT FOUND IN SOURCE -msgid "Department ID" -msgstr "部門代碼" - -#: NOT FOUND IN SOURCE -msgid "Department Name" -msgstr "部門名稱" - -#: NOT FOUND IN SOURCE -msgid "Department's" -msgstr "部門之" - -#: NOT FOUND IN SOURCE -msgid "Departure Details" -msgstr "差旅明細" - -#: NOT FOUND IN SOURCE -msgid "Departure From" -msgstr "差旅起始日" - -#: NOT FOUND IN SOURCE -msgid "Departure Request" -msgstr "請假單" - -#: NOT FOUND IN SOURCE -msgid "Departure Until" -msgstr "差旅截止日" - -#: html/Elements/EditLinks:140 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:221 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 -msgid "Depended on by" -msgstr "可接續處理的申請單" - -#: NOT FOUND IN SOURCE -msgid "Dependencies: \\n" -msgstr "附屬性:\\n" - -#: lib/RT/Transaction_Overlay.pm:718 -#. ($value) -msgid "Dependency by %1 added" -msgstr "已加入可接續處理的申請單 %1" - -#: lib/RT/Transaction_Overlay.pm:758 -#. ($value) -msgid "Dependency by %1 deleted" -msgstr "已移除可接續處理的申請單 %1" - -#: lib/RT/Transaction_Overlay.pm:715 -#. ($value) -msgid "Dependency on %1 added" -msgstr "已加入需先處理的申請單 %1" - -#: lib/RT/Transaction_Overlay.pm:755 -#. ($value) -msgid "Dependency on %1 deleted" -msgstr "已移除需先處理的申請單 %1" - -#: html/Elements/EditLinks:136 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:220 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 -msgid "Depends on" -msgstr "需先處理" - -#: NOT FOUND IN SOURCE -msgid "DependsOn" -msgstr "需先處理" - -#: html/Search/Elements/DisplayOptions:86 -msgid "Desc" -msgstr "" - -#: html/Elements/SelectSortOrder:56 -msgid "Descending" -msgstr "遞減" - -#: html/SelfService/Create.html:100 html/Ticket/Create.html:152 -msgid "Describe the issue below" -msgstr "在以下欄位描述主題" - -#: html/Admin/CustomFields/Modify.html:61 html/Admin/Elements/AddCustomFieldValue:57 html/Admin/Elements/EditCustomField:60 html/Admin/Elements/EditCustomFieldValues:56 html/Admin/Elements/EditScrip:55 html/Admin/Elements/ModifyTemplate:57 html/Admin/Groups/Modify.html:71 html/Admin/Queues/Modify.html:69 html/Search/Elements/EditSearches:56 html/User/Groups/Modify.html:70 -msgid "Description" -msgstr "描述" - -#: NOT FOUND IN SOURCE -msgid "Description of Responsibility" -msgstr "經辦業務說明" - -#: NOT FOUND IN SOURCE -msgid "Description:" -msgstr "描述:" - -#: NOT FOUND IN SOURCE -msgid "Details" -msgstr "細節" - -#: NOT FOUND IN SOURCE -msgid "Direct" -msgstr "直接" - -#: NOT FOUND IN SOURCE -msgid "Disability" -msgstr "殘障身分" - -#: NOT FOUND IN SOURCE -msgid "Disability Type" -msgstr "殘障類別" - -#: NOT FOUND IN SOURCE -msgid "Disabled" -msgstr "停用" - -#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 -msgid "Display" -msgstr "顯示內容" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "Display Access Control List" -msgstr "顯示權限控制清單" - -#: html/Search/Elements/DisplayOptions:46 -msgid "Display Columns" -msgstr "顯示欄位" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "Display Scrip templates for this queue" -msgstr "顯示此表單的範本" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "Display Scrips for this queue" -msgstr "顯示此表單的手續" - -#: html/Ticket/Elements/ShowHistory:59 -msgid "Display mode" -msgstr "顯示模式" - -#: lib/RT/Group_Overlay.pm:168 -msgid "Display saved searches for this group" -msgstr "顯示此群組已儲存的查詢" - -#: NOT FOUND IN SOURCE -msgid "Display ticket #%1" -msgstr "顯示第%1號申請單" - -#: html/Elements/Footer:61 -msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" -msgstr "依 <a href=\"http://www.gnu.org/copyleft/gpl.html\">GNU 通用公共授權</a> 第二版散布。" - -#: lib/RT/System.pm:75 -msgid "Do anything and everything" -msgstr "允許一切操作" - -#: html/Elements/Refresh:51 -msgid "Don't refresh this page." -msgstr "不更新此頁面。" - -#: NOT FOUND IN SOURCE -msgid "Don't show search results" -msgstr "不顯示查詢結果" - -#: NOT FOUND IN SOURCE -msgid "Done" -msgstr "完成" - -#: NOT FOUND IN SOURCE -msgid "Down" -msgstr "下一頁" - -#: html/Ticket/Elements/ShowTransactionAttachments:82 -msgid "Download" -msgstr "下載" - -#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 -msgid "Download as a tab-delimited file" -msgstr "下載以 Tab 分隔的檔案" - -#: NOT FOUND IN SOURCE -msgid "Dr." -msgstr "博士" - -#: html/Elements/SelectDateType:53 html/Ticket/Create.html:209 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/Reminders:133 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1173 -msgid "Due" -msgstr "到期日" - -#: NOT FOUND IN SOURCE -msgid "Due Date" -msgstr "截止日" - -#: NOT FOUND IN SOURCE -msgid "Due date '%1' could not be parsed" -msgstr "無法解讀日期 '%1'" - -#: NOT FOUND IN SOURCE -msgid "ERROR: Couldn't load ticket '%1': %2.\\n" -msgstr "無法載入申請單 '%1':%2.\\n" - -#: html/Elements/Quicksearch:48 html/Elements/ShowSearch:49 html/index.html:107 -msgid "Edit" -msgstr "編輯" - -#: NOT FOUND IN SOURCE -msgid "Edit Conditions" -msgstr "編輯前置條件" - -#: html/Search/Bulk.html:149 -msgid "Edit Custom Fields" -msgstr "" - -#: html/Admin/Elements/ObjectCustomFields:92 html/Admin/Queues/CustomFields.html:64 html/Admin/Users/CustomFields.html:64 -#. ($Object->Name) -msgid "Edit Custom Fields for %1" -msgstr "編輯 %1 的自訂欄位" - -#: html/Admin/Global/CustomFields/Groups.html:54 -msgid "Edit Custom Fields for all groups" -msgstr "" - -#: html/Admin/Global/CustomFields/Users.html:54 -msgid "Edit Custom Fields for all users" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for queue %1" -msgstr "編輯表單 %1 的自訂欄位" - -#: html/Admin/Global/CustomFields/Queue-Tickets.html:54 html/Admin/Global/CustomFields/Queue-Transactions.html:54 -msgid "Edit Custom Fields for tickets in all queues" -msgstr "" - -#: html/Search/Bulk.html:188 html/Ticket/ModifyLinks.html:57 -msgid "Edit Links" -msgstr "編輯申請單關係" - -#: html/Search/Edit.html:68 -msgid "Edit Query" -msgstr "編輯查詢" - -#: html/Ticket/Elements/Tabs:214 -msgid "Edit Search" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Edit Subgroups" -msgstr "新增/維護子群組" - -#: html/Admin/Queues/Templates.html:63 -#. ($QueueObj->Name) -msgid "Edit Templates for queue %1" -msgstr "編輯表單 %1 的範本" - -#: NOT FOUND IN SOURCE -msgid "Edit Workflows for queue %1" -msgstr "編輯表單 %1 的流程" - -#: NOT FOUND IN SOURCE -msgid "Edit keywords" -msgstr "編輯關鍵字" - -#: lib/RT/Group_Overlay.pm:167 -msgid "Edit saved searches for this group" -msgstr "編輯此群組已儲存的查詢" - -#: NOT FOUND IN SOURCE -msgid "Edit scrips" -msgstr "編輯手續" - -#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 -msgid "Edit system templates" -msgstr "編輯全域範本" - -#: NOT FOUND IN SOURCE -msgid "Edit system workflows" -msgstr "編輯全域流程" - -#: NOT FOUND IN SOURCE -msgid "Edit templates for %1" -msgstr "編輯 %1 的範本" - -#: NOT FOUND IN SOURCE -msgid "Edit workflows for %1" -msgstr "編輯 %1 的流程" - -#: lib/RT/Group_Overlay.pm:167 -msgid "EditSavedSearches" -msgstr "編輯已儲存的查詢" - -#: html/Admin/Queues/Modify.html:140 -#. ($QueueObj->Name) -msgid "Editing Configuration for queue %1" -msgstr "編輯表單 %1 的設定" - -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for user %1" -msgstr "編輯使用者 %1 的設定" - -#: html/Admin/CustomFields/Modify.html:167 html/Admin/Elements/EditCustomField:120 -#. ($CustomFieldObj->Name()) -msgid "Editing CustomField %1" -msgstr "編輯自訂欄位 %1" - -#: html/Admin/Groups/Members.html:53 -#. ($Group->Name) -msgid "Editing membership for group %1" -msgstr "編輯群組 %1 的成員資訊" - -#: html/User/Groups/Members.html:150 -#. ($Group->Name) -msgid "Editing membership for personal group %1" -msgstr "編輯代理人群組 %1 的成員資訊" - -#: NOT FOUND IN SOURCE -msgid "Editing template %1" -msgstr "編輯範本 %1" - -#: NOT FOUND IN SOURCE -msgid "Editing workflow %1" -msgstr "編輯流程 %1" - -#: NOT FOUND IN SOURCE -msgid "Education" -msgstr "最高學歷" - -#: NOT FOUND IN SOURCE -msgid "EffectiveId" -msgstr "有效編號" - -#: lib/RT/Record.pm:1295 lib/RT/Record.pm:1372 lib/RT/Ticket_Overlay.pm:2518 lib/RT/Ticket_Overlay.pm:2608 -msgid "Either base or target must be specified" -msgstr "需要指定起始申請單或目的申請單" - -#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 -msgid "Email" -msgstr "電子郵件信箱" - -#: NOT FOUND IN SOURCE -msgid "Email Address" -msgstr "電子郵件信箱" - -#: lib/RT/User_Overlay.pm:235 -msgid "Email address in use" -msgstr "此電子郵件信箱已被使用" - -#: NOT FOUND IN SOURCE -msgid "EmailAddress" -msgstr "電子郵件信箱位址" - -#: NOT FOUND IN SOURCE -msgid "EmailEncoding" -msgstr "電子郵件文字編碼方式" - -#: NOT FOUND IN SOURCE -msgid "Embark Date" -msgstr "外籍員工入境日" - -#: NOT FOUND IN SOURCE -msgid "Embarked Date" -msgstr "抵達日期" - -#: NOT FOUND IN SOURCE -msgid "Embarked Location" -msgstr "抵達地點" - -#: NOT FOUND IN SOURCE -msgid "Enable Delegates" -msgstr "代理啟動" - -#: html/Admin/CustomFields/Modify.html:98 html/Admin/Elements/EditCustomField:72 -msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "啟用(取消勾選將停用此自訂欄位)" - -#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 -msgid "Enabled (Unchecking this box disables this group)" -msgstr "啟用(取消勾選將停用此群組)" - -#: html/Admin/Queues/Modify.html:105 -msgid "Enabled (Unchecking this box disables this queue)" -msgstr "啟用(取消勾選將停用此表單)" - -#: NOT FOUND IN SOURCE -msgid "Enabled Custom Fields" -msgstr "已啟用的自訂欄位" - -#: NOT FOUND IN SOURCE -msgid "Enabled Date" -msgstr "啟用日期" - -#: NOT FOUND IN SOURCE -msgid "Enabled Date:" -msgstr "啟動日期:" - -#: html/Admin/Queues/index.html:78 -msgid "Enabled Queues" -msgstr "已啟用的表單" - -#: NOT FOUND IN SOURCE -msgid "Enabled Status" -msgstr "啟用狀態" - -#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:350 html/User/Groups/Modify.html:138 -#. (loc_fuzzy($msg)) -msgid "Enabled status %1" -msgstr "啟用狀態 %1" - -#: html/Admin/CustomFields/Modify.html:185 html/Admin/Queues/Modify.html:162 -#. (loc_fuzzy($msg)) -msgid "Enabled status: %1" -msgstr "啟用狀態: %1" - -#: NOT FOUND IN SOURCE -msgid "End of Trial" -msgstr "試用期滿日" - -#: NOT FOUND IN SOURCE -msgid "English Name" -msgstr "英文姓名" - -#: lib/RT/CustomField_Overlay.pm:64 -msgid "Enter multiple values" -msgstr "鍵入多重項目" - -#: html/Elements/EditLinks:126 -msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." -msgstr "鍵入欲將物件連結至的物件或 URI。項目之間請以空白隔開。" - -#: NOT FOUND IN SOURCE -msgid "Enter one or more conditions below to search for users" -msgstr "鍵入下列單一或複式條件,查詢用戶資料" - -#: lib/RT/CustomField_Overlay.pm:65 -msgid "Enter one value" -msgstr "鍵入單一項目" - -#: html/Elements/EditLinks:123 -msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." -msgstr "鍵入欲將表單連結至的物件或 URI。項目之間請以空白隔開。" - -#: html/Elements/EditLinks:119 html/Search/Bulk.html:189 -msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "鍵入申請單可鏈結到的申請單編號或網址。項目之間請以空白隔開。" - -#: lib/RT/CustomField_Overlay.pm:66 -msgid "Enter up to %1 values" -msgstr "鍵入最多 %1 個項目" - -#: NOT FOUND IN SOURCE -msgid "EntryBoolean" -msgstr "是非填表" - -#: NOT FOUND IN SOURCE -msgid "EntryDate" -msgstr "日期填表" - -#: NOT FOUND IN SOURCE -msgid "EntryExternal" -msgstr "系統填表" - -#: NOT FOUND IN SOURCE -msgid "EntryFreeform" -msgstr "輸入填表" - -#: NOT FOUND IN SOURCE -msgid "EntryMultiple" -msgstr "多選填表" - -#: NOT FOUND IN SOURCE -msgid "EntryNumber" -msgstr "數值填表" - -#: NOT FOUND IN SOURCE -msgid "EntrySelect" -msgstr "單選填表" - -#: NOT FOUND IN SOURCE -msgid "EntryTime" -msgstr "時間填表" - -#: html/Elements/Login:76 html/SelfService/Error.html:46 html/SelfService/Error.html:47 -msgid "Error" -msgstr "錯誤" - -#: NOT FOUND IN SOURCE -msgid "Error adding watcher" -msgstr "新增視察員失敗" - -#: lib/RT/Queue_Overlay.pm:672 -msgid "Error in parameters to Queue->AddWatcher" -msgstr "表單->新增視察員的參數有誤" - -#: lib/RT/Queue_Overlay.pm:833 -msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "表單->刪除視察員的參數有誤" - -#: lib/RT/Ticket_Overlay.pm:1372 -msgid "Error in parameters to Ticket->AddWatcher" -msgstr "申請單->新增視察員的參數有誤" - -#: lib/RT/Ticket_Overlay.pm:1538 -msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "申請單->刪除視察員的參數有誤" - -#: bin/rt-crontool:285 -msgid "Escalate tickets" -msgstr "調整申請單優先等級" - -#: NOT FOUND IN SOURCE -msgid "Estimate" -msgstr "預計" - -#: html/Ticket/Elements/ShowBasics:57 -msgid "Estimated" -msgstr "預計" - -#: etc/initialdata:20 -msgid "Everyone" -msgstr "所有人" - -#: bin/rt-crontool:271 -msgid "Example:" -msgstr "範例:" - -#: NOT FOUND IN SOURCE -msgid "Existing user renamed from %1 to %2" -msgstr "現有使用者 %1 已改名為 %2" - -#: NOT FOUND IN SOURCE -msgid "Export" -msgstr "匯出" - -#: NOT FOUND IN SOURCE -msgid "ExternalAuthId" -msgstr "外部認證帳號" - -#: NOT FOUND IN SOURCE -msgid "ExternalContactInfoId" -msgstr "外部聯絡方式帳號" - -#: NOT FOUND IN SOURCE -msgid "ExternalDatabaseDSN" -msgstr "外部資料庫連結字串" - -#: NOT FOUND IN SOURCE -msgid "ExternalDatabasePass" -msgstr "外部資料庫密碼" - -#: NOT FOUND IN SOURCE -msgid "ExternalDatabaseUser" -msgstr "外部資料庫用戶" - -#: NOT FOUND IN SOURCE -msgid "ExternalURL" -msgstr "外部介面網址" - -#: html/Admin/Users/Modify.html:99 -msgid "Extra info" -msgstr "備註" - -#: lib/RT/SavedSearch.pm:177 -msgid "Failed to create search attribute" -msgstr "查詢屬性建立失敗" - -#: lib/RT/User_Overlay.pm:376 -msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "找不到「內部成員」虛擬群組的使用者。" - -#: lib/RT/User_Overlay.pm:383 -msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "找不到「非內部成員」虛擬群組的使用者。" - -#: bin/rt-crontool:206 -#. ($modname, $@) -msgid "Failed to load module %1. (%2)" -msgstr "無法載入模組 %1. (%2)" - -#: lib/RT/SavedSearch.pm:152 -#. ($privacy) -msgid "Failed to load object for %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Feb" -msgstr "二月" - -#: lib/RT/Date.pm:442 -msgid "Feb." -msgstr "02" - -#: NOT FOUND IN SOURCE -msgid "February" -msgstr "二月" - -#: NOT FOUND IN SOURCE -msgid "Female" -msgstr "女" - -#: NOT FOUND IN SOURCE -msgid "Field Content:" -msgstr "欄位內容:" - -#: NOT FOUND IN SOURCE -msgid "Field Description" -msgstr "欄位描述" - -#: NOT FOUND IN SOURCE -msgid "Field Name" -msgstr "欄位名稱" - -#: NOT FOUND IN SOURCE -msgid "Field Type" -msgstr "欄位類別" - -#: html/Elements/SelectAttachmentField:50 -msgid "Filename" -msgstr "檔名" - -#: lib/RT/CustomField_Overlay.pm:69 -msgid "Fill in multiple text areas" -msgstr "填入多個文字框" - -#: lib/RT/CustomField_Overlay.pm:74 -msgid "Fill in multiple wikitext areas" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:70 -msgid "Fill in one text area" -msgstr "填入一個文字框" - -#: lib/RT/CustomField_Overlay.pm:75 -msgid "Fill in one wikitext area" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:107 html/Admin/CustomFields/Modify.html:118 -msgid "Fill in this field with a URL." -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:71 -msgid "Fill in up to %1 text areas" -msgstr "填入最多 %1 個文字框" - -#: lib/RT/CustomField_Overlay.pm:76 -msgid "Fill in up to %1 wikitext areas" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Filter" -msgstr "篩選" - -#: NOT FOUND IN SOURCE -msgid "Filter people" -msgstr "對象篩選" - -#: NOT FOUND IN SOURCE -msgid "Filtered list:" -msgstr "篩選列表:" - -#: NOT FOUND IN SOURCE -msgid "Fin" -msgstr "最終" - -#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:182 html/Ticket/Elements/EditBasics:97 lib/RT/Tickets_Overlay.pm:1841 -msgid "Final Priority" -msgstr "最終順位" - -#: lib/RT/Ticket_Overlay.pm:1164 -msgid "FinalPriority" -msgstr "最終順位" - -#: NOT FOUND IN SOURCE -msgid "Financial Department:" -msgstr "財務部:" - -#: NOT FOUND IN SOURCE -msgid "Find group whose" -msgstr "尋找群組的" - -#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 -msgid "Find groups whose" -msgstr "尋找群組的" - -#: NOT FOUND IN SOURCE -msgid "Find new/open tickets" -msgstr "尋找/開啟申請單" - -#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 -msgid "Find people whose" -msgstr "尋找人員的" - -#: NOT FOUND IN SOURCE -msgid "Find queues whose" -msgstr "尋找表單的" - -#: html/Search/Results.html:147 -msgid "Find tickets" -msgstr "尋找申請單" - -#: NOT FOUND IN SOURCE -msgid "Finish Approval" -msgstr "簽核完畢" - -#: html/Ticket/Elements/Tabs:81 -msgid "First" -msgstr "第一項" - -#: NOT FOUND IN SOURCE -msgid "First page" -msgstr "第一頁" - -#: NOT FOUND IN SOURCE -msgid "First-" -msgstr "一" - -#: NOT FOUND IN SOURCE -msgid "First-level Admins" -msgstr "一階主管" - -#: NOT FOUND IN SOURCE -msgid "First-level Users" -msgstr "一階主管員工" - -#: NOT FOUND IN SOURCE -msgid "Fixed shift" -msgstr "固定班" - -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:766 -msgid "Foo Bar Baz" -msgstr "甲 乙 丙" - -#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 -msgid "Foo!" -msgstr "甲!" - -#: html/Search/Bulk.html:83 -msgid "Force change" -msgstr "強制更換" - -#: NOT FOUND IN SOURCE -msgid "Form Processing" -msgstr "電子表單作業區" - -#: html/Search/Elements/EditFormat:52 -msgid "Format" -msgstr "" - -#: html/Search/Results.html:145 -#. ($ticketcount) -msgid "Found %quant(%1,ticket)" -msgstr "找到 %1 張申請單" - -#: lib/RT/Record.pm:956 -msgid "Found Object" -msgstr "已找到物件" - -#: NOT FOUND IN SOURCE -msgid "Fourth-" -msgstr "四" - -#: NOT FOUND IN SOURCE -msgid "Freeform" -msgstr "輸入" - -#: NOT FOUND IN SOURCE -msgid "FreeformContactInfo" -msgstr "聯絡方式" - -#: NOT FOUND IN SOURCE -msgid "FreeformDate" -msgstr "日期輸入" - -#: NOT FOUND IN SOURCE -msgid "FreeformExternal" -msgstr "系統欄位" - -#: NOT FOUND IN SOURCE -msgid "FreeformMultiple" -msgstr "多重輸入" - -#: NOT FOUND IN SOURCE -msgid "FreeformNumber" -msgstr "數值輸入" - -#: NOT FOUND IN SOURCE -msgid "FreeformPassword" -msgstr "密碼輸入" - -#: NOT FOUND IN SOURCE -msgid "FreeformSingle" -msgstr "單一輸入" - -#: NOT FOUND IN SOURCE -msgid "FreeformTime" -msgstr "時間輸入" - -#: NOT FOUND IN SOURCE -msgid "Fri" -msgstr "星期五" - -#: lib/RT/Date.pm:421 -msgid "Fri." -msgstr "星期五" - -#: html/Ticket/Elements/ShowHistory:66 html/Ticket/Elements/ShowHistory:72 -msgid "Full headers" -msgstr "完整標頭檔" - -#: NOT FOUND IN SOURCE -msgid "Gecos" -msgstr "登入帳號" - -#: NOT FOUND IN SOURCE -msgid "Gender" -msgstr "性別" - -#: html/Tools/Offline.html:85 -msgid "Get template from file" -msgstr "取出檔案裡的範本" - -#: NOT FOUND IN SOURCE -msgid "Getting the current user from a pgp sig\\n" -msgstr "取得目前使用者的 pgp 簽章\\n" - -#: lib/RT/Transaction_Overlay.pm:684 -#. ($New->Name) -msgid "Given to %1" -msgstr "交予 %1" - -#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 -msgid "Global" -msgstr "全域設定" - -#: NOT FOUND IN SOURCE -msgid "Global Approval" -msgstr "全域簽核" - -#: html/Admin/Elements/EditCustomFields:55 -msgid "Global Custom Fields" -msgstr "全域自訂欄位" - -#: NOT FOUND IN SOURCE -msgid "Global Keyword Selections" -msgstr "全域關鍵字選取" - -#: NOT FOUND IN SOURCE -msgid "Global Rights:" -msgstr "擁有全域權限列表:" - -#: NOT FOUND IN SOURCE -msgid "Global Scrips" -msgstr "全域手續" - -#: NOT FOUND IN SOURCE -msgid "Global Setup" -msgstr "全域設定" - -#: html/Admin/Global/CustomFields/index.html:59 -msgid "Global custom field configuration" -msgstr "" - -#: html/Admin/Global/MyRT.html:48 -#. ($pane) -msgid "Global portlet %1 saved." -msgstr "" - -#: html/Admin/Elements/SelectTemplate:59 -#. (loc($Template->Name)) -msgid "Global template: %1" -msgstr "全域範本:%1" - -#: NOT FOUND IN SOURCE -msgid "GlobalApproval" -msgstr "全域簽核" - -#: html/Admin/CustomFields/index.html:80 html/Search/Results.html:90 html/Tools/Offline.html:89 -msgid "Go" -msgstr "執行" - -#: html/Admin/Groups/index.html:67 html/Admin/Groups/index.html:73 html/Admin/Queues/People.html:80 html/Admin/Queues/People.html:84 html/Admin/Queues/index.html:66 html/Admin/Users/index.html:73 html/Elements/RefreshHomepage:48 html/Search/Results.html:74 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 -msgid "Go!" -msgstr "執行" - -#: NOT FOUND IN SOURCE -msgid "Good pgp sig from %1\\n" -msgstr "%1 的 pgp 簽章是正確的\\n" - -#: NOT FOUND IN SOURCE -msgid "Goto page" -msgstr "到頁面" - -#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 -msgid "Goto ticket" -msgstr "跳到申請單" - -#: NOT FOUND IN SOURCE -msgid "Grand" -msgstr "上" - -#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 -msgid "Group" -msgstr "群組" - -#: NOT FOUND IN SOURCE -msgid "Group %1 %2: %3" -msgstr "群組 %1 %2:%3" - -#: NOT FOUND IN SOURCE -msgid "Group Admin" -msgstr "群組管理員" - -#: NOT FOUND IN SOURCE -msgid "Group Description" -msgstr "群組描述" - -#: NOT FOUND IN SOURCE -msgid "Group Management" -msgstr "群組管理" - -#: NOT FOUND IN SOURCE -msgid "Group Members" -msgstr "群組成員" - -#: NOT FOUND IN SOURCE -msgid "Group Name" -msgstr "群組名稱" - -#: NOT FOUND IN SOURCE -msgid "Group Name:" -msgstr "群組名稱:" - -#: html/Admin/Elements/CustomFieldTabs:68 html/Admin/Elements/GroupTabs:66 html/Admin/Elements/QueueTabs:82 html/Admin/Elements/SystemTabs:65 html/Admin/Global/index.html:76 -msgid "Group Rights" -msgstr "群組權限" - -#: NOT FOUND IN SOURCE -msgid "Group Rights:" -msgstr "擁有群組權限列表:" - -#: NOT FOUND IN SOURCE -msgid "Group Setup" -msgstr "群組設定" - -#: NOT FOUND IN SOURCE -msgid "Group Status" -msgstr "群組狀態" - -#: lib/RT/Group_Overlay.pm:983 -msgid "Group already has member" -msgstr "群組內已有此成員" - -#: NOT FOUND IN SOURCE -msgid "Group could not be created." -msgstr "無法新增群組" - -#: html/Admin/Groups/Modify.html:109 -#. ($create_msg) -msgid "Group could not be created: %1" -msgstr "無法新增群組:%1" - -#: lib/RT/Group_Overlay.pm:521 -msgid "Group created" -msgstr "群組新增完畢" - -#: NOT FOUND IN SOURCE -msgid "Group created: %1" -msgstr "群組 %1 新增完畢" - -#: lib/RT/Group_Overlay.pm:1155 -msgid "Group has no such member" -msgstr "群組沒有這個成員" - -#: lib/RT/Group_Overlay.pm:963 lib/RT/Queue_Overlay.pm:748 lib/RT/Queue_Overlay.pm:808 lib/RT/Ticket_Overlay.pm:1430 lib/RT/Ticket_Overlay.pm:1510 -msgid "Group not found" -msgstr "找不到群組" - -#: NOT FOUND IN SOURCE -msgid "Group not found.\\n" -msgstr "找不到群組。\\n" - -#: NOT FOUND IN SOURCE -msgid "Group not specified.\\n" -msgstr "未指定群組。\\n" - -#: NOT FOUND IN SOURCE -msgid "Group redescribed from %1 to %2" -msgstr "群組描述 %1 已改為 %2" - -#: NOT FOUND IN SOURCE -msgid "Group renamed from %1 to %2" -msgstr "群組 %1 已改名為 %2" - -#: NOT FOUND IN SOURCE -msgid "Group with Queue Rights" -msgstr "擁有表單權限群組" - -#: NOT FOUND IN SOURCE -msgid "Group's" -msgstr "群組之" - -#: NOT FOUND IN SOURCE -msgid "Group:" -msgstr "群組:" - -#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:57 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:86 html/Admin/Queues/People.html:104 html/Admin/Users/Memberships.html:53 html/Admin/index.html:67 html/User/Groups/Members.html:88 lib/RT/CustomField_Overlay.pm:1210 -msgid "Groups" -msgstr "群組" - -#: lib/RT/Group_Overlay.pm:989 -msgid "Groups can't be members of their members" -msgstr "不能將群組設為群組內成員" - -#: html/Admin/Groups/index.html:86 -msgid "Groups matching search criteria" -msgstr "符合查詢條件的群組" - -#: html/Ticket/Elements/ShowRequestor:77 -msgid "Groups this user belongs to" -msgstr "使用者所屬的群組" - -#: NOT FOUND IN SOURCE -msgid "Groups with Global Rights" -msgstr "擁有全域權限群組" - -#: NOT FOUND IN SOURCE -msgid "HRMSDefined" -msgstr "組織架構" - -#: NOT FOUND IN SOURCE -msgid "HTML Attributes" -msgstr "HTML 屬性" - -#: NOT FOUND IN SOURCE -msgid "Health Insurance" -msgstr "健保補助身份" - -#: lib/RT/Interface/CLI.pm:94 lib/RT/Interface/CLI.pm:94 -msgid "Hello!" -msgstr "嗨!" - -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 -#. ($name) -msgid "Hello, %1" -msgstr "嗨,%1" - -#: NOT FOUND IN SOURCE -msgid "Help" -msgstr "說明" - -#: NOT FOUND IN SOURCE -msgid "Help Desks" -msgstr "各項業務窗口" - -#: NOT FOUND IN SOURCE -msgid "Hidden" -msgstr "隱藏" - -#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:53 html/Ticket/Elements/Tabs:111 -msgid "History" -msgstr "紀錄" - -#: html/Admin/Groups/History.html:62 -#. ($GroupObj->Name) -msgid "History of the group %1" -msgstr "群組 %1 的紀錄" - -#: html/Admin/Users/History.html:62 -#. ($UserObj->Name) -msgid "History of the user %1" -msgstr "使用者 %1 的紀錄" - -#: NOT FOUND IN SOURCE -msgid "HomePhone" -msgstr "住處電話" - -#: html/Elements/Tabs:65 -msgid "Homepage" -msgstr "主頁" - -#: NOT FOUND IN SOURCE -msgid "Hotel Expense" -msgstr "住宿費" - -#: html/Elements/SelectTimeUnits:48 -msgid "Hours" -msgstr "" - -#: lib/RT/Base.pm:119 -#. (6) -msgid "I have %quant(%1,concrete mixer)." -msgstr "我有 %quant(%1,份固體攪拌器)。" - -#: html/Search/Build.html:460 lib/RT/Report/Tickets.pm:415 -msgid "I'm lost" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ID Number" -msgstr "身分證號" - -#: NOT FOUND IN SOURCE -msgid "ID Type" -msgstr "身分類別" - -#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1766 -msgid "Id" -msgstr "編號" - -#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 -msgid "Identity" -msgstr "身份" - -#: etc/initialdata:429 -msgid "If an approval is rejected, reject the original and delete pending approvals" -msgstr "若簽核單遭到駁回,則連帶駁回原申請單,並刪除其他相關的待簽核事項" - -#: html/Tools/Offline.html:74 -msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "若沒有指定申請者,則以此使用者作為申請者" - -#: html/Tools/Offline.html:65 -msgid "If no queue is specified, create tickets in this queue." -msgstr "申請單若沒有指定表單,則將它新增在此表單內" - -#: bin/rt-crontool:267 -msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." -msgstr "如果此工具程式為 setgid,惡意的本地端用戶即能由此取得 RT 的管理員權限。" - -#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:60 -msgid "If you've updated anything above, be sure to" -msgstr "若您已更新以上資料,請記得按一下" - -#: lib/RT/Record.pm:947 -msgid "Illegal value for %1" -msgstr "%1 的值錯誤" - -#: NOT FOUND IN SOURCE -msgid "Image" -msgstr "圖片" - -#: lib/RT/Record.pm:950 -msgid "Immutable field" -msgstr "此欄位值不可更動" - -#: NOT FOUND IN SOURCE -msgid "Import" -msgstr "匯入" - -#: NOT FOUND IN SOURCE -msgid "Include disabled custom fields in listing." -msgstr "列出停用的自訂欄位" - -#: html/Admin/Groups/index.html:65 -msgid "Include disabled groups in listing." -msgstr "列出停用的群組" - -#: html/Admin/Queues/index.html:65 -msgid "Include disabled queues in listing." -msgstr "列出停用的表單" - -#: html/Admin/Users/index.html:71 -msgid "Include disabled users in search." -msgstr "列出停用的使用者" - -#: html/Admin/CustomFields/Modify.html:113 -msgid "Include page" -msgstr "" - -#: html/Search/Build.html:486 lib/RT/Report/Tickets.pm:441 -msgid "Incomplete Query" -msgstr "" - -#: html/Search/Build.html:483 lib/RT/Report/Tickets.pm:438 -msgid "Incomplete query" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Indirect Employee" -msgstr "直接/間接員工" - -#: html/Search/Elements/PickBasics:148 lib/RT/Tickets_Overlay.pm:1816 -msgid "Initial Priority" -msgstr "初始優先順位" - -#: lib/RT/Ticket_Overlay.pm:1163 lib/RT/Ticket_Overlay.pm:1165 -msgid "InitialPriority" -msgstr "初始優先順位" - -#: lib/RT/ScripAction_Overlay.pm:133 -msgid "Input error" -msgstr "輸入錯誤" - -#: html/Elements/ValidateCustomFields:68 lib/RT/CustomField_Overlay.pm:1021 lib/RT/CustomField_Overlay.pm:1162 -#. ($self->FriendlyPattern) -#. ($CF->FriendlyPattern) -msgid "Input must match %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Interest noted" -msgstr "登記成功" - -#: lib/RT/Ticket_Overlay.pm:3503 -msgid "Internal Error" -msgstr "內部錯誤" - -#: lib/RT/Record.pm:308 -#. ($id->{error_message}) -msgid "Internal Error: %1" -msgstr "內部錯誤:%1" - -#: lib/RT/Group_Overlay.pm:668 -msgid "Invalid Group Type" -msgstr "錯誤的群組類別" - -#: lib/RT/Principal_Overlay.pm:161 -msgid "Invalid Right" -msgstr "錯誤的權限" - -#: NOT FOUND IN SOURCE -msgid "Invalid Type" -msgstr "錯誤的類型" - -#: lib/RT/Record.pm:952 -msgid "Invalid data" -msgstr "錯誤的資料" - -#: NOT FOUND IN SOURCE -msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "錯誤的承辦人。改為預設承辦人「nobody」。" - -#: lib/RT/CustomField_Overlay.pm:207 lib/RT/CustomField_Overlay.pm:678 -#. ($msg) -msgid "Invalid pattern: %1" -msgstr "" - -#: lib/RT/Scrip_Overlay.pm:157 lib/RT/Template_Overlay.pm:244 -msgid "Invalid queue" -msgstr "錯誤的表單" - -#: lib/RT/ACE_Overlay.pm:264 lib/RT/ACE_Overlay.pm:273 lib/RT/ACE_Overlay.pm:279 lib/RT/ACE_Overlay.pm:290 -msgid "Invalid right" -msgstr "錯誤的權限" - -#: lib/RT/Record.pm:283 -#. ($key) -msgid "Invalid value for %1" -msgstr "%1 的值錯誤" - -#: lib/RT/Record.pm:1610 -msgid "Invalid value for custom field" -msgstr "錯誤的自訂欄位值" - -#: lib/RT/Ticket_Overlay.pm:424 -msgid "Invalid value for status" -msgstr "錯誤的狀態值" - -#: NOT FOUND IN SOURCE -msgid "IssueStatement" -msgstr "送出陳述" - -#: bin/rt-crontool:268 -msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." -msgstr "請絕對不要讓未具權限的使用者執行此工具程式。" - -#: bin/rt-crontool:269 -msgid "It is suggested that you create a non-privileged unix user with the correct group membership and RT access to run this tool." -msgstr "建議您新增一個隸屬於正確群組的低權限系統使用者,並以該身份執行此工具程式。" - -#: bin/rt-crontool:231 -msgid "It takes several arguments:" -msgstr "它接受下列參數:" - -#: html/Search/Elements/EditFormat:85 -msgid "Italic" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Item Name" -msgstr "品名" - -#: NOT FOUND IN SOURCE -msgid "Items" -msgstr "筆" - -#: NOT FOUND IN SOURCE -msgid "Items pending my approval" -msgstr "待簽核項目" - -#: NOT FOUND IN SOURCE -msgid "Jan" -msgstr "一月" - -#: lib/RT/Date.pm:441 -msgid "Jan." -msgstr "01" - -#: NOT FOUND IN SOURCE -msgid "January" -msgstr "一月" - -#: NOT FOUND IN SOURCE -msgid "Job" -msgstr "職稱" - -#: lib/RT/Group_Overlay.pm:166 -msgid "Join or leave this group" -msgstr "加入或離開此群組" - -#: NOT FOUND IN SOURCE -msgid "Jul" -msgstr "七月" - -#: lib/RT/Date.pm:447 -msgid "Jul." -msgstr "07" - -#: NOT FOUND IN SOURCE -msgid "July" -msgstr "七月" - -#: html/Ticket/Elements/Tabs:125 -msgid "Jumbo" -msgstr "全部資訊" - -#: NOT FOUND IN SOURCE -msgid "Jun" -msgstr "六月" - -#: lib/RT/Date.pm:446 -msgid "Jun." -msgstr "06" - -#: NOT FOUND IN SOURCE -msgid "June" -msgstr "六月" - -#: NOT FOUND IN SOURCE -msgid "Keyword" -msgstr "關鍵字" - -#: NOT FOUND IN SOURCE -msgid "LabelAttachments" -msgstr "附件標籤" - -#: NOT FOUND IN SOURCE -msgid "LabelContent" -msgstr "內容標籤" - -#: NOT FOUND IN SOURCE -msgid "LabelSubject" -msgstr "主題標籤" - -#: NOT FOUND IN SOURCE -msgid "LabelURL" -msgstr "鏈結標籤" - -#: NOT FOUND IN SOURCE -msgid "Lang" -msgstr "使用語言" - -#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 -msgid "Language" -msgstr "語言" - -#: html/Search/Elements/EditFormat:79 -msgid "Large" -msgstr "" - -#: html/Ticket/Elements/Tabs:96 -msgid "Last" -msgstr "上次更新" - -#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 -msgid "Last Contact" -msgstr "上次聯絡" - -#: html/Elements/SelectDateType:50 -msgid "Last Contacted" -msgstr "上次聯絡日期" - -#: NOT FOUND IN SOURCE -msgid "Last Notified" -msgstr "上次通知" - -#: html/Elements/SelectDateType:51 -msgid "Last Updated" -msgstr "上次更新" - -#: NOT FOUND IN SOURCE -msgid "LastUpdated" -msgstr "上次更新" - -#: html/Search/Elements/PickBasics:103 -msgid "LastUpdatedBy" -msgstr "上次更新者" - -#: html/Ticket/Elements/ShowBasics:68 -msgid "Left" -msgstr "剩餘時間" - -#: html/Admin/Users/Modify.html:109 -msgid "Let this user access RT" -msgstr "允許這名使用者登入" - -#: html/Admin/Users/Modify.html:113 -msgid "Let this user be granted rights" -msgstr "內部成員(具有個人權限)" - -#: NOT FOUND IN SOURCE -msgid "Limiting owner to %1 %2" -msgstr "限制承辦人為 %1 到%2" - -#: NOT FOUND IN SOURCE -msgid "Limiting queue to %1 %2" -msgstr "限制表單為 %1 到 %2" - -#: html/Search/Elements/EditFormat:68 -msgid "Link" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Link a Queue" -msgstr "申請表單連結" - -#: lib/RT/Record.pm:1306 -msgid "Link already exists" -msgstr "此鏈結已存在" - -#: lib/RT/Record.pm:1320 -msgid "Link could not be created" -msgstr "無法新增鏈結" - -#: lib/RT/Record.pm:1326 -#. ($TransString) -msgid "Link created (%1)" -msgstr "鏈結(%1)新增完畢" - -#: lib/RT/Record.pm:1387 -#. ($TransString) -msgid "Link deleted (%1)" -msgstr "鏈結(%1)刪除完畢" - -#: lib/RT/Record.pm:1393 -msgid "Link not found" -msgstr "找不到鏈結" - -#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 -#. ($Ticket->Id) -msgid "Link ticket #%1" -msgstr "鏈結申請單 #%1" - -#: NOT FOUND IN SOURCE -msgid "Link ticket %1" -msgstr "鏈結申請單 %1" - -#: html/Admin/CustomFields/Modify.html:102 -msgid "Link values to" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:700 -msgid "Linking. Permission denied" -msgstr "" - -#: html/Ticket/Create.html:216 html/Ticket/Elements/ShowSummary:89 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 -msgid "Links" -msgstr "鏈結" - -#: NOT FOUND IN SOURCE -msgid "List All Users" -msgstr "列出所有用戶資料" - -#: html/Search/Elements/EditSearches:75 -msgid "Load" -msgstr "載入" - -#: html/Search/Elements/EditSearches:73 -msgid "Load saved search:" -msgstr "載入已儲存的查詢:" - -#: lib/RT/System.pm:86 -msgid "LoadSavedSearch" -msgstr "" - -#: html/Admin/Tools/Configuration.html:64 -msgid "Loaded perl modules" -msgstr "已載入的 Perl 模組" - -#: lib/RT/SavedSearch.pm:111 -#. ($self->Name) -msgid "Loaded search %1" -msgstr "" - -#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 -msgid "Location" -msgstr "位置" - -#: NOT FOUND IN SOURCE -msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." -msgstr "登入目錄 %1 找不到或無法寫入\\n。無法執行 RT。" - -#: NOT FOUND IN SOURCE -msgid "LogToFile" -msgstr "紀錄等級" - -#: NOT FOUND IN SOURCE -msgid "LogToFileNamed" -msgstr "紀錄檔名" - -#: html/Elements/Header:91 -#. ("<span>".$session{'CurrentUser'}->Name."</span>") -msgid "Logged in as %1" -msgstr "使用者:%1" - -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:100 html/Elements/Login:68 html/Elements/Login:84 lib/RT/StyleGuide.pod:797 -msgid "Login" -msgstr "登入" - -#: html/Elements/Header:101 -msgid "Logout" -msgstr "登出" - -#: NOT FOUND IN SOURCE -msgid "Long-term contractor" -msgstr "長期契約員工" - -#: lib/RT/CustomField_Overlay.pm:932 -msgid "Lookup type mismatch" -msgstr "對應的類別不符" - -#: html/Search/Bulk.html:82 -msgid "Make Owner" -msgstr "新增承辦人" - -#: html/Search/Bulk.html:106 -msgid "Make Status" -msgstr "新增現況" - -#: html/Search/Bulk.html:114 -msgid "Make date Due" -msgstr "新增到期日" - -#: html/Search/Bulk.html:116 -msgid "Make date Resolved" -msgstr "新增解決日期" - -#: html/Search/Bulk.html:110 -msgid "Make date Started" -msgstr "新增實際起始日期" - -#: html/Search/Bulk.html:108 -msgid "Make date Starts" -msgstr "新增應起始日期" - -#: html/Search/Bulk.html:112 -msgid "Make date Told" -msgstr "新增報告日期" - -#: html/Search/Bulk.html:102 -msgid "Make priority" -msgstr "新增優先順位" - -#: html/Search/Bulk.html:104 -msgid "Make queue" -msgstr "新增表單" - -#: html/Search/Bulk.html:100 -msgid "Make subject" -msgstr "新增主題" - -#: lib/RT/Group_Overlay.pm:169 -msgid "Make this group visible to user" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Male" -msgstr "男" - -#: html/Admin/index.html:78 -msgid "Manage custom fields and custom field values" -msgstr "管理自訂欄位及欄位值" - -#: html/Admin/index.html:69 -msgid "Manage groups and group membership" -msgstr "管理群組及所屬成員" - -#: html/Admin/index.html:85 -msgid "Manage properties and configuration which apply to all queues" -msgstr "管理適用於所有表單的屬性與設定" - -#: html/Admin/index.html:74 -msgid "Manage queues and queue-specific properties" -msgstr "管理各表單及相關屬性" - -#: html/Admin/index.html:64 -msgid "Manage users and passwords" -msgstr "管理使用者與密碼" - -#: NOT FOUND IN SOURCE -msgid "Manager" -msgstr "經理" - -#: NOT FOUND IN SOURCE -msgid "Mar" -msgstr "三月" - -#: lib/RT/Date.pm:443 -msgid "Mar." -msgstr "03" - -#: NOT FOUND IN SOURCE -msgid "March" -msgstr "三月" - -#: NOT FOUND IN SOURCE -msgid "Marketing Department" -msgstr "行銷部" - -#: NOT FOUND IN SOURCE -msgid "Match Pattern" -msgstr "符合樣式" - -#: NOT FOUND IN SOURCE -msgid "May" -msgstr "五月" - -#: lib/RT/Date.pm:445 -msgid "May." -msgstr "05" - -#: lib/RT/Transaction_Overlay.pm:731 -#. ($value) -msgid "Member %1 added" -msgstr "成員 %1 新增完畢" - -#: lib/RT/Transaction_Overlay.pm:771 -#. ($value) -msgid "Member %1 deleted" -msgstr "成員 %1 刪除完畢" - -#: lib/RT/Group_Overlay.pm:1000 -msgid "Member added" -msgstr "新增成員完畢" - -#: lib/RT/Group_Overlay.pm:1162 -msgid "Member deleted" -msgstr "成員已刪除" - -#: lib/RT/Group_Overlay.pm:1166 -msgid "Member not deleted" -msgstr "成員未刪除" - -#: html/Elements/SelectLinkType:47 -msgid "Member of" -msgstr "隸屬於" - -#: NOT FOUND IN SOURCE -msgid "Member since" -msgstr "註冊日期" - -#: NOT FOUND IN SOURCE -msgid "MemberOf" -msgstr "隸屬於" - -#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 -msgid "Members" -msgstr "成員" - -#: lib/RT/Transaction_Overlay.pm:728 -#. ($value) -msgid "Membership in %1 added" -msgstr "所屬群組 %1 加入完畢" - -#: lib/RT/Transaction_Overlay.pm:768 -#. ($value) -msgid "Membership in %1 deleted" -msgstr "所屬群組 %1 移除完畢" - -#: html/Admin/Elements/UserTabs:61 -msgid "Memberships" -msgstr "所屬群組" - -#: html/Admin/Users/Memberships.html:60 -#. ($UserObj->Name) -msgid "Memberships of the user %1" -msgstr "使用者 %1 的所屬群組" - -#: lib/RT/Ticket_Overlay.pm:2893 -msgid "Merge Successful" -msgstr "整合完畢" - -#: lib/RT/Ticket_Overlay.pm:2780 -msgid "Merge failed. Couldn't set EffectiveId" -msgstr "整合失敗。無法設定 EffectiveId" - -#: lib/RT/Ticket_Overlay.pm:2788 -msgid "Merge failed. Couldn't set Status" -msgstr "" - -#: html/Elements/EditLinks:131 html/Ticket/Elements/BulkLinks:48 -msgid "Merge into" -msgstr "整合進" - -#: lib/RT/Transaction_Overlay.pm:734 -#. ($value) -msgid "Merged into %1" -msgstr "已整合進 %1" - -#: html/Search/Bulk.html:143 html/Ticket/Update.html:118 -msgid "Message" -msgstr "訊息" - -#: html/Ticket/Elements/ShowTransactionAttachments:164 -msgid "Message body not shown because it is too large or is not plain text." -msgstr "信件內文不是純文字,因此無法顯示。" - -#: lib/RT/Ticket_Overlay.pm:2451 -msgid "Message could not be recorded" -msgstr "無法紀錄訊息" - -#: lib/RT/Ticket_Overlay.pm:2454 -msgid "Message recorded" -msgstr "訊息紀錄成功" - -#: html/Ticket/Elements/PreviewScrips:122 -msgid "Messages about this ticket will not be sent to..." -msgstr "此申請單的相關訊息不會寄送給..." - -#: html/Elements/SelectTimeUnits:47 -msgid "Minutes" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Misc. Expense" -msgstr "雜費" - -#: html/Search/Build.html:490 lib/RT/Report/Tickets.pm:445 -msgid "Mismatched parentheses" -msgstr "未對齊的括號" - -#: lib/RT/Record.pm:954 -msgid "Missing a primary key?: %1" -msgstr "缺少主鍵值?(%1)" - -#: NOT FOUND IN SOURCE -msgid "Missing mandatory fields" -msgstr "缺少必填欄位" - -#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:92 -msgid "Mobile" -msgstr "行動電話" - -#: NOT FOUND IN SOURCE -msgid "MobilePhone" -msgstr "行動電話" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "Modify Access Control List" -msgstr "更改權限控制清單" - -#: html/Admin/Elements/ObjectCustomFields:96 -#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) -msgid "Modify Custom Fields which apply to %1 for all %2" -msgstr "更改適用於 %1 內所有 %2 的自訂欄位" - -#: html/Admin/Elements/ObjectCustomFields:98 -#. (loc(lc($Types))) -msgid "Modify Custom Fields which apply to all %1" -msgstr "更改適用於所有%1的自訂欄位" - -#: NOT FOUND IN SOURCE -msgid "Modify Custom Fields which apply to all queues" -msgstr "更改適用於所有表單的自訂欄位" - -#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 -msgid "Modify Group Rights" -msgstr "更改群組權限" - -#: html/Admin/Groups/Members.html:105 html/User/Groups/Members.html:101 -msgid "Modify Members" -msgstr "更改成員" - -#: html/User/Delegation.html:58 -msgid "Modify Rights" -msgstr "更改權限" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "Modify Scrip templates for this queue" -msgstr "更改此表單的範本" - -#: lib/RT/Queue_Overlay.pm:100 -msgid "Modify Scrips for this queue" -msgstr "更改此表單的手續" - -#: NOT FOUND IN SOURCE -msgid "Modify System ACLS" -msgstr "更改系統權限清單" - -#: NOT FOUND IN SOURCE -msgid "Modify Template %1" -msgstr "更改範本 %1" - -#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 -msgid "Modify User Rights" -msgstr "更改使用者權限" - -#: NOT FOUND IN SOURCE -msgid "Modify Workflow" -msgstr "更改流程" - -#: html/Admin/Queues/CustomField.html:66 -#. ($QueueObj->Name()) -msgid "Modify a CustomField for queue %1" -msgstr "更改 %1 表單內的自訂欄位" - -#: NOT FOUND IN SOURCE -msgid "Modify a CustomField that applies to all queues" -msgstr "更改適用於所有表單的自訂欄位" - -#: html/Admin/Queues/Scrip.html:82 -#. ($QueueObj->Name) -msgid "Modify a scrip for queue %1" -msgstr "更改 %1 表單內的手續" - -#: html/Admin/Global/Scrip.html:75 -msgid "Modify a scrip that applies to all queues" -msgstr "更改適用於所有表單的手續" - -#: html/Admin/CustomFields/Objects.html:90 -#. ($CF->Name) -msgid "Modify associated objects for %1" -msgstr "更改適用 %1 的物件" - -#: NOT FOUND IN SOURCE -msgid "Modify dates for # %1" -msgstr "更改 # %1 的日期" - -#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 -#. ($TicketObj->Id) -msgid "Modify dates for #%1" -msgstr "更改 #%1 的日期" - -#: html/Ticket/ModifyDates.html:57 -#. ($TicketObj->Id) -msgid "Modify dates for ticket # %1" -msgstr "更改申請單 # %1 的日期" - -#: html/Admin/Elements/GlobalCustomFieldTabs:65 html/Admin/Global/index.html:72 -msgid "Modify global custom fields" -msgstr "更改全域自訂欄位" - -#: html/Admin/Elements/GlobalCustomFieldTabs:70 html/Admin/Global/GroupRights.html:46 html/Admin/Global/GroupRights.html:49 html/Admin/Global/index.html:77 -msgid "Modify global group rights" -msgstr "更改全域設定的群組權限" - -#: html/Admin/Global/GroupRights.html:54 -msgid "Modify global group rights." -msgstr "更改全域設定的群組權限。" - -#: NOT FOUND IN SOURCE -msgid "Modify global rights for groups" -msgstr "更改全域設定的群組權限" - -#: NOT FOUND IN SOURCE -msgid "Modify global rights for users" -msgstr "更改全域設定的使用者權限" - -#: NOT FOUND IN SOURCE -msgid "Modify global scrips" -msgstr "更改全域手續" - -#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 -msgid "Modify global user rights" -msgstr "更改全域設定的使用者權限" - -#: html/Admin/Global/UserRights.html:54 -msgid "Modify global user rights." -msgstr "更改全域設定的使用者權限。" - -#: lib/RT/Group_Overlay.pm:163 -msgid "Modify group metadata or delete group" -msgstr "更改群組資料及刪除群組" - -#: html/Admin/CustomFields/GroupRights.html:164 -#. ($CustomFieldObj->Name) -msgid "Modify group rights for custom field %1" -msgstr "更改自訂欄位 %1 的群組權限" - -#: html/Admin/Groups/GroupRights.html:46 html/Admin/Groups/GroupRights.html:50 html/Admin/Groups/GroupRights.html:56 -#. ($GroupObj->Name) -msgid "Modify group rights for group %1" -msgstr "更改群組 %1 的群組權限" - -#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 -#. ($QueueObj->Name) -msgid "Modify group rights for queue %1" -msgstr "更改表單 %1 的群組權限" - -#: lib/RT/Group_Overlay.pm:165 -msgid "Modify membership roster for this group" -msgstr "更改此群組的成員名單" - -#: lib/RT/System.pm:82 -msgid "Modify one's own RT account" -msgstr "更改個人的帳號資訊" - -#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 -#. ($QueueObj->Name) -msgid "Modify people related to queue %1" -msgstr "更改鏈結到表單 %1 的人員" - -#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:57 -#. ($Ticket->id) -#. ($Ticket->Id) -msgid "Modify people related to ticket #%1" -msgstr "更改申請單 #%1 鏈結到的人員" - -#: html/Admin/Queues/Scrips.html:67 -#. ($QueueObj->Name) -msgid "Modify scrips for queue %1" -msgstr "更改表單 %1 的手續" - -#: html/Admin/Elements/GlobalCustomFieldTabs:56 html/Admin/Global/Scrips.html:65 html/Admin/Global/index.html:63 -msgid "Modify scrips which apply to all queues" -msgstr "更改適用於所有表單的手續" - -#: html/Admin/Global/Template.html:102 html/Admin/Global/Template.html:46 html/Admin/Global/Template.html:51 html/Admin/Queues/Template.html:99 -#. (loc($TemplateObj->Name())) -#. ($TemplateObj->id) -msgid "Modify template %1" -msgstr "更改範本 %1" - -#: html/Admin/Global/Templates.html:65 -msgid "Modify templates which apply to all queues" -msgstr "更改適用於所有表單的範本" - -#: html/Admin/Global/index.html:85 -msgid "Modify the default \"RT at a glance\" view" -msgstr "更改預設的「RT 一覽」檢視" - -#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 -#. ($Group->Name) -msgid "Modify the group %1" -msgstr "更改群組 %1" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "Modify the queue watchers" -msgstr "更改表單視察員" - -#: html/Admin/Users/Modify.html:309 -#. ($UserObj->Name) -msgid "Modify the user %1" -msgstr "更改使用者 %1" - -#: html/Ticket/ModifyAll.html:58 -#. ($Ticket->Id) -msgid "Modify ticket # %1" -msgstr "更改申請單 # %1" - -#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 -#. ($TicketObj->Id) -msgid "Modify ticket #%1" -msgstr "更改申請單 # %1" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "Modify tickets" -msgstr "更改申請單" - -#: html/Admin/CustomFields/UserRights.html:157 -#. ($CustomFieldObj->Name) -msgid "Modify user rights for custom field %1" -msgstr "更改自訂欄位 %1 的使用者權限" - -#: html/Admin/Groups/UserRights.html:46 html/Admin/Groups/UserRights.html:50 html/Admin/Groups/UserRights.html:56 -#. ($GroupObj->Name) -msgid "Modify user rights for group %1" -msgstr "更改群組 %1 的使用者權限" - -#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 -#. ($QueueObj->Name) -msgid "Modify user rights for queue %1" -msgstr "更改表單 %1 的使用者權限" - -#: NOT FOUND IN SOURCE -msgid "Modify watchers for queue '%1'" -msgstr "更改 '%1' 的視察員" - -#: NOT FOUND IN SOURCE -msgid "Modify workflow %1" -msgstr "更改流程 %1" - -#: NOT FOUND IN SOURCE -msgid "Modify workflows which apply to all queues" -msgstr "更改適用於所有表單的流程" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "ModifyACL" -msgstr "更改權限清單" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "ModifyCustomField" -msgstr "更改自訂欄位" - -#: lib/RT/Group_Overlay.pm:166 -msgid "ModifyOwnMembership" -msgstr "更改自己是否屬於某群組" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "ModifyQueueWatchers" -msgstr "更改表單視察員" - -#: lib/RT/Queue_Overlay.pm:100 -msgid "ModifyScrips" -msgstr "更改手續" - -#: lib/RT/System.pm:82 -msgid "ModifySelf" -msgstr "更改個人帳號" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "ModifyTemplate" -msgstr "更改範本" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "ModifyTicket" -msgstr "更改申請單" - -#: NOT FOUND IN SOURCE -msgid "Mon" -msgstr "星期一" - -#: lib/RT/Date.pm:417 -msgid "Mon." -msgstr "星期一" - -#: NOT FOUND IN SOURCE -msgid "More" -msgstr "更多" - -#: html/Ticket/Elements/ShowRequestor:61 -#. ($name) -msgid "More about %1" -msgstr "關於 %1 的進一步資訊" - -#: NOT FOUND IN SOURCE -msgid "Morning Shift" -msgstr "早班" - -#: NOT FOUND IN SOURCE -msgid "Move" -msgstr "移動" - -#: NOT FOUND IN SOURCE -msgid "Move All" -msgstr "全移" - -#: html/Admin/Elements/PickCustomFields:83 -msgid "Move down" -msgstr "下移" - -#: html/Admin/Elements/PickCustomFields:75 -msgid "Move up" -msgstr "上移" - -#: html/Admin/Elements/SelectSingleOrMultiple:48 -msgid "Multiple" -msgstr "多重" - -#: lib/RT/User_Overlay.pm:226 -msgid "Must specify 'Name' attribute" -msgstr "必須指定 'Name' 的屬性" - -#: html/SelfService/Elements/MyRequests:57 -#. ($friendly_status) -msgid "My %1 tickets" -msgstr "我的 %1 申請單" - -#: NOT FOUND IN SOURCE -msgid "My Approvals" -msgstr "表單簽核" - -#: html/Tools/Elements/Tabs:63 -msgid "My Day" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "My Requests" -msgstr "表單申請追蹤" - -#: NOT FOUND IN SOURCE -msgid "My Tickets" -msgstr "表單處理" - -#: html/Approvals/index.html:46 html/Approvals/index.html:47 -msgid "My approvals" -msgstr "表單簽核" - -#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:54 -msgid "My saved searches" -msgstr "我已儲存的查詢" - -#: html/Admin/CustomFields/Modify.html:58 html/Admin/Elements/AddCustomFieldValue:53 html/Admin/Elements/EditCustomField:55 html/Admin/Elements/EditCustomFieldValues:55 html/Admin/Elements/ModifyTemplate:49 html/Admin/Groups/Modify.html:65 html/Search/Bulk.html:157 html/User/Groups/Modify.html:65 -msgid "Name" -msgstr "名稱" - -#: lib/RT/User_Overlay.pm:233 -msgid "Name in use" -msgstr "帳號已有人使用" - -#: NOT FOUND IN SOURCE -msgid "Nationality" -msgstr "國籍" - -#: NOT FOUND IN SOURCE -msgid "Need approval from system administrator" -msgstr "需先由系統管理員進行批准" - -#: html/Ticket/Elements/ShowDates:73 -msgid "Never" -msgstr "從未更動" - -#: NOT FOUND IN SOURCE -msgid "New" -msgstr "新建立" - -#: html/Elements/EditLinks:117 -msgid "New Links" -msgstr "新增關係" - -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 -msgid "New Password" -msgstr "新的密碼" - -#: etc/initialdata:332 -msgid "New Pending Approval" -msgstr "新的待簽核事項" - -#: NOT FOUND IN SOURCE -msgid "New Query" -msgstr "新增查詢" - -#: NOT FOUND IN SOURCE -msgid "New Request" -msgstr "表單申請" - -#: html/Ticket/Elements/Tabs:212 -msgid "New Search" -msgstr "新增查詢" - -#: NOT FOUND IN SOURCE -msgid "New Watchers" -msgstr "新增視察員" - -#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 -msgid "New custom field" -msgstr "新增自訂欄位" - -#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 -msgid "New group" -msgstr "新增群組" - -#: html/SelfService/Prefs.html:53 -msgid "New password" -msgstr "新的密碼" - -#: lib/RT/User_Overlay.pm:816 -msgid "New password notification sent" -msgstr "送出新密碼通知" - -#: html/Admin/Elements/QueueTabs:95 -msgid "New queue" -msgstr "新增表單" - -#: html/Ticket/Elements/Reminders:118 -msgid "New reminder:" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "New request" -msgstr "提出申請單" - -#: html/Admin/Elements/SelectRights:65 -msgid "New rights" -msgstr "新增權限" - -#: html/Admin/Global/Scrip.html:63 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:76 -msgid "New scrip" -msgstr "新增手續" - -#: NOT FOUND IN SOURCE -msgid "New search" -msgstr "重新查詢" - -#: html/Admin/Global/Template.html:81 html/Admin/Global/Templates.html:60 html/Admin/Queues/Template.html:79 html/Admin/Queues/Templates.html:71 -msgid "New template" -msgstr "新增範本" - -#: html/SelfService/Elements/Tabs:84 html/SelfService/Elements/Tabs:88 -msgid "New ticket" -msgstr "提出申請單" - -#: lib/RT/Ticket_Overlay.pm:2757 -msgid "New ticket doesn't exist" -msgstr "沒有新申請單" - -#: html/Admin/Elements/UserTabs:81 -msgid "New user" -msgstr "新增使用者" - -#: html/Admin/Elements/CreateUserCalled:47 -msgid "New user called" -msgstr "新使用者名字" - -#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 -msgid "New watchers" -msgstr "新視察員" - -#: NOT FOUND IN SOURCE -msgid "New window setting" -msgstr "更新視窗設定" - -#: NOT FOUND IN SOURCE -msgid "New workflow" -msgstr "新增流程" - -#: html/Helpers/CalPopup.html:58 html/Ticket/Elements/Tabs:92 -msgid "Next" -msgstr "下一項" - -#: html/Elements/TicketList:104 -msgid "Next Page" -msgstr "下一頁" - -#: NOT FOUND IN SOURCE -msgid "Next page" -msgstr "下一頁" - -#: NOT FOUND IN SOURCE -msgid "NickName" -msgstr "暱稱" - -#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 -msgid "Nickname" -msgstr "暱稱" - -#: NOT FOUND IN SOURCE -msgid "Night Shift" -msgstr "小夜班" - -#: NOT FOUND IN SOURCE -msgid "No" -msgstr "否" - -#: html/Admin/CustomFields/UserRights.html:145 -msgid "No Class defined" -msgstr "尚未定義類別" - -#: html/Admin/CustomFields/Modify.html:166 html/Admin/Elements/EditCustomField:119 -msgid "No CustomField" -msgstr "無自訂欄位" - -#: html/Admin/CustomFields/GroupRights.html:103 -msgid "No CustomField defined" -msgstr "尚未定義自訂欄位" - -#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 -msgid "No Group defined" -msgstr "尚未定義群組" - -#: lib/RT/Tickets_Overlay_SQL.pm:482 -msgid "No Query" -msgstr "沒有查詢" - -#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 -msgid "No Queue defined" -msgstr "尚未定義表單" - -#: bin/rt-crontool:73 -msgid "No RT user found. Please consult your RT administrator.\\n" -msgstr "找不到 RT 使用者。請向 RT 管理員查詢。\\n" - -#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 -msgid "No Template" -msgstr "沒有範本" - -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket " -msgstr "未指定申請單。退出申請單 " - -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket modifications\\n\\n" -msgstr "未指定申請單。退出申請單更改\\n\\n" - -#: NOT FOUND IN SOURCE -msgid "No Workflow" -msgstr "沒有流程" - -#: html/Approvals/Elements/Approve:77 -msgid "No action" -msgstr "暫不處理" - -#: lib/RT/Record.pm:949 -msgid "No column specified" -msgstr "未指定欄位" - -#: NOT FOUND IN SOURCE -msgid "No command found\\n" -msgstr "找不到命令" - -#: html/Ticket/Elements/ShowRequestor:68 -msgid "No comment entered about this user" -msgstr "沒有對這名使用者的評論" - -#: NOT FOUND IN SOURCE -msgid "No correspondence attached" -msgstr "沒有附上申請單回覆" - -#: lib/RT/Action/Generic.pm:185 lib/RT/Condition/Generic.pm:197 lib/RT/Search/ActiveTicketsInQueue.pm:77 lib/RT/Search/Generic.pm:134 lib/RT/Search/Googleish.pm:78 -#. (ref $self) -msgid "No description for %1" -msgstr "沒有對 %1 的描述" - -#: lib/RT/Users_Overlay.pm:190 -msgid "No group specified" -msgstr "未指定群組" - -#: html/Admin/Groups/index.html:52 -msgid "No groups matching search criteria found." -msgstr "找不到符合查詢條件的群組。" - -#: lib/RT/Ticket_Overlay.pm:2393 -msgid "No message attached" -msgstr "沒有附上訊息" - -#: lib/RT/User_Overlay.pm:1034 -msgid "No password set" -msgstr "沒有設定密碼" - -#: lib/RT/Queue_Overlay.pm:361 -msgid "No permission to create queues" -msgstr "沒有新增表單的權限" - -#: lib/RT/Ticket_Overlay.pm:420 -#. ($QueueObj->Name) -msgid "No permission to create tickets in the queue '%1'" -msgstr "沒有在表單 '%1' 新增申請單的權限" - -#: lib/RT/User_Overlay.pm:186 -msgid "No permission to create users" -msgstr "沒有新增使用者的權限" - -#: html/SelfService/Display.html:167 -msgid "No permission to display that ticket" -msgstr "沒有顯示該申請單的權限" - -#: lib/RT/SavedSearch.pm:156 -msgid "No permission to save system-wide searches" -msgstr "沒有儲存全域預存查詢的權限" - -#: html/SelfService/Update.html:117 -msgid "No permission to view update ticket" -msgstr "沒有檢視申請單更新的權限" - -#: lib/RT/Queue_Overlay.pm:795 lib/RT/Ticket_Overlay.pm:1489 -msgid "No principal specified" -msgstr "未指定單位" - -#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 -msgid "No principals selected." -msgstr "未指定單位。" - -#: NOT FOUND IN SOURCE -msgid "No protocol specified in %1" -msgstr "%1 內未指定協定" - -#: html/Admin/Queues/index.html:57 -msgid "No queues matching search criteria found." -msgstr "找不到符合查詢條件的表單。" - -#: html/Admin/Elements/SelectRights:106 -msgid "No rights found" -msgstr "找不到權限" - -#: html/Admin/Elements/SelectRights:53 -msgid "No rights granted." -msgstr "沒有選定權限" - -#: lib/RT/SavedSearch.pm:196 -msgid "No search loaded" -msgstr "尚未載入查詢" - -#: html/Search/Bulk.html:232 -msgid "No search to operate on." -msgstr "沒有要進行的查詢" - -#: html/Elements/RT__Ticket/ColumnMap:137 html/Search/Results.rdf:78 -msgid "No subject" -msgstr "沒有標題" - -#: NOT FOUND IN SOURCE -msgid "No ticket id specified" -msgstr "未指定申請單編號" - -#: lib/RT/Transaction_Overlay.pm:528 lib/RT/Transaction_Overlay.pm:565 -msgid "No transaction type specified" -msgstr "未指定更動報告類別" - -#: NOT FOUND IN SOURCE -msgid "No user or email address specified" -msgstr "未指定使用者或電子郵件地址" - -#: html/Admin/Users/index.html:55 -msgid "No users matching search criteria found." -msgstr "找不到符合查詢條件的使用者。" - -#: NOT FOUND IN SOURCE -msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" -msgstr "找不到合格的 RT 使用者。RT cvs 處理器已停用。請向 RT 管理者詢問。\\n" - -#: lib/RT/Record.pm:946 -msgid "No value sent to _Set!\\n" -msgstr "_Set 沒有收到任何值!\\n" - -#: html/Elements/QuickCreate:59 -msgid "Nobody" -msgstr "沒有人" - -#: lib/RT/Record.pm:951 -msgid "Nonexistant field?" -msgstr "欄位不存在?" - -#: NOT FOUND IN SOURCE -msgid "Normal Users" -msgstr "一般用戶群組" - -#: html/Search/Chart:71 html/Search/Elements/Chart:88 -msgid "Not Set" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Not configured to fetch the content from a %1 in %2" -msgstr "未設定成從 %2 內擷取 %1" - -#: NOT FOUND IN SOURCE -msgid "Not logged in" -msgstr "尚未登入" - -#: html/Elements/Header:96 -msgid "Not logged in." -msgstr "尚未登入" - -#: lib/RT/Date.pm:397 -msgid "Not set" -msgstr "尚未設定" - -#: html/NoAuth/Reminder.html:48 -msgid "Not yet implemented." -msgstr "尚未完工。" - -#: NOT FOUND IN SOURCE -msgid "Not yet implemented...." -msgstr "尚未完工..." - -#: html/Approvals/Elements/Approve:81 -msgid "Notes" -msgstr "備註" - -#: NOT FOUND IN SOURCE -msgid "Notes:" -msgstr "備註:" - -#: lib/RT/User_Overlay.pm:819 -msgid "Notification could not be sent" -msgstr "無法送出通知" - -#: etc/initialdata:101 -msgid "Notify AdminCcs" -msgstr "通知管理員副本收件人" - -#: etc/initialdata:97 -msgid "Notify AdminCcs as Comment" -msgstr "以評論方式通知管理員副本收件人" - -#: etc/initialdata:93 etc/upgrade/3.1.17/content:6 -msgid "Notify Ccs" -msgstr "通知副本收件人" - -#: etc/initialdata:89 etc/upgrade/3.1.17/content:2 -msgid "Notify Ccs as Comment" -msgstr "以評論方式通知副本收件人" - -#: etc/initialdata:128 -msgid "Notify Other Recipients" -msgstr "通知其他收件人" - -#: etc/initialdata:124 -msgid "Notify Other Recipients as Comment" -msgstr "以評論方式通知其他收件人" - -#: etc/initialdata:85 -msgid "Notify Owner" -msgstr "通知承辦人" - -#: etc/initialdata:81 -msgid "Notify Owner as Comment" -msgstr "以評論方式通知承辦人" - -#: etc/initialdata:376 -msgid "Notify Owner of their rejected ticket" -msgstr "通知承辦人申請單已駁回" - -#: etc/initialdata:365 -msgid "Notify Owner of their ticket has been approved by all approvers" -msgstr "通知承辦人申請單已完成全部簽核" - -#: etc/initialdata:353 -msgid "Notify Owner of their ticket has been approved by some approver" -msgstr "通知承辦人申請單已完成某項簽核" - -#: etc/initialdata:334 -msgid "Notify Owners and AdminCcs of new items pending their approval" -msgstr "整理待簽核事項,通知承辦人及管理員副本收件人" - -#: etc/initialdata:77 -msgid "Notify Requestors" -msgstr "通知申請人" - -#: etc/initialdata:111 -msgid "Notify Requestors and Ccs" -msgstr "通知申請人及副本收件人" - -#: etc/initialdata:106 -msgid "Notify Requestors and Ccs as Comment" -msgstr "以評論方式通知申請人及副本收件人" - -#: etc/initialdata:120 -msgid "Notify Requestors, Ccs and AdminCcs" -msgstr "通知申請人、副本及管理員副本收件人" - -#: etc/initialdata:116 -msgid "Notify Requestors, Ccs and AdminCcs as Comment" -msgstr "以評論方式通知申請人、副本及管理員副本收件人" - -#: NOT FOUND IN SOURCE -msgid "Notify people:" -msgstr "通知對象" - -#: NOT FOUND IN SOURCE -msgid "Nov" -msgstr "十一月" - -#: lib/RT/Date.pm:451 -msgid "Nov." -msgstr "11" - -#: NOT FOUND IN SOURCE -msgid "November" -msgstr "十一月" - -#: NOT FOUND IN SOURCE -msgid "OIN104" -msgstr "104eHRMS 介面" - -#: NOT FOUND IN SOURCE -msgid "OK" -msgstr "確定" - -#: html/Search/Elements/SelectAndOr:47 -msgid "OR" -msgstr "OR" - -#: lib/RT/Record.pm:322 -msgid "Object could not be created" -msgstr "無法新增物件" - -#: lib/RT/Record.pm:123 -msgid "Object could not be deleted" -msgstr "" - -#: lib/RT/Record.pm:341 -msgid "Object created" -msgstr "物件新增完畢" - -#: lib/RT/Record.pm:120 -msgid "Object deleted" -msgstr "" - -#: html/Admin/CustomFields/Objects.html:72 html/Admin/Elements/ObjectCustomFields:63 -#. ($ObjectType) -#. ($LookupType) -msgid "Object of type %1 cannot take custom fields" -msgstr "自訂欄位不適用於類別為 %1 的物件" - -#: lib/RT/CustomField_Overlay.pm:967 -msgid "Object type mismatch" -msgstr "物件類別不符" - -#: NOT FOUND IN SOURCE -msgid "Occupation Status" -msgstr "在職狀態" - -#: NOT FOUND IN SOURCE -msgid "Oct" -msgstr "十月" - -#: lib/RT/Date.pm:450 -msgid "Oct." -msgstr "10" - -#: NOT FOUND IN SOURCE -msgid "October" -msgstr "十月" - -#: NOT FOUND IN SOURCE -msgid "Office Phone" -msgstr "辦公室電話" - -#: html/Tools/Elements/Tabs:55 -msgid "Offline" -msgstr "離線" - -#: html/Tools/Offline.html:49 -msgid "Offline edits" -msgstr "離線編輯" - -#: html/Tools/Offline.html:46 -msgid "Offline upload" -msgstr "離線上載" - -#: html/Elements/SelectDateRelation:56 -msgid "On" -msgstr "等於" - -#: lib/RT/Transaction_Overlay.pm:326 -#. ($self->CreatedAsString(), $self->CreatorObj->Name()) -msgid "On %1, %2 wrote:" -msgstr "在 %1 時,%2 寫到:" - -#: NOT FOUND IN SOURCE -msgid "On Change" -msgstr "更改申請單時" - -#: etc/initialdata:163 -msgid "On Comment" -msgstr "評論時" - -#: etc/initialdata:156 -msgid "On Correspond" -msgstr "回覆申請單時" - -#: etc/initialdata:145 -msgid "On Create" -msgstr "新增申請單時" - -#: etc/initialdata:184 -msgid "On Owner Change" -msgstr "承辦人改變時" - -#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 -msgid "On Priority Change" -msgstr "優先順位改變時" - -#: etc/initialdata:192 -msgid "On Queue Change" -msgstr "表單改變時" - -#: etc/initialdata:198 -msgid "On Resolve" -msgstr "解決申請單時" - -#: etc/initialdata:169 -msgid "On Status Change" -msgstr "現況改變時" - -#: etc/initialdata:150 -msgid "On Transaction" -msgstr "發生更動時" - -#: html/Approvals/Elements/PendingMyApproval:70 -#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter' id='CreatedAfter' />") -msgid "Only show approvals for requests created after %1" -msgstr "僅顯示 %1 之後新增的申請單" - -#: html/Approvals/Elements/PendingMyApproval:68 -#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore' id='CreatedBefore' />") -msgid "Only show approvals for requests created before %1" -msgstr "僅顯示 %1 之前新增的申請單" - -#: html/Admin/CustomFields/index.html:75 -msgid "Only show custom fields for:" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Open" -msgstr "開啟" - -#: html/SelfService/index.html:46 -msgid "Open Tickets" -msgstr "" - -#: html/Ticket/Elements/Tabs:160 -msgid "Open it" -msgstr "開啟" - -#: html/SelfService/Elements/Tabs:75 -msgid "Open tickets" -msgstr "開啟的申請單" - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in a new window" -msgstr "在新視窗開啟(列表的)申請單" - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in another window" -msgstr "在另一個視窗開啟(列表的)申請單" - -#: etc/initialdata:140 -msgid "Open tickets on correspondence" -msgstr "收到回覆時即開啟申請單" - -#: NOT FOUND IN SOURCE -msgid "Opened Tickets" -msgstr "已申請運行中表單" - -#: NOT FOUND IN SOURCE -msgid "Opinion" -msgstr "意見" - -#: NOT FOUND IN SOURCE -msgid "Option Description" -msgstr "選項描述" - -#: NOT FOUND IN SOURCE -msgid "Option Name" -msgstr "選項名稱" - -#: html/Prefs/MyRT.html:70 -msgid "Options" -msgstr "" - -#: html/Search/Elements/DisplayOptions:59 -msgid "Order by" -msgstr "排序方式" - -#: NOT FOUND IN SOURCE -msgid "Ordering and sorting" -msgstr "順序與排序方式" - -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 -msgid "Organization" -msgstr "組織名稱" - -#: NOT FOUND IN SOURCE -msgid "Organization:" -msgstr "組織:" - -#: html/Approvals/Elements/Approve:53 -#. ($approving->Id, $approving->Subject) -msgid "Originating ticket: #%1" -msgstr "原申請單:#%1" - -#: NOT FOUND IN SOURCE -msgid "Other comma-delimited email addresses" -msgstr "其他e-mail帳號 (僅e-mail通知;多筆帳號請用逗號','區隔)" - -#: NOT FOUND IN SOURCE -msgid "Out of range" -msgstr "期限外" - -#: lib/RT/Transaction_Overlay.pm:622 -msgid "Outgoing email about a comment recorded" -msgstr "已紀錄發送的評論郵件" - -#: lib/RT/Transaction_Overlay.pm:626 -msgid "Outgoing email recorded" -msgstr "已紀錄發送的郵件" - -#: html/Admin/Queues/Modify.html:90 -msgid "Over time, priority moves toward" -msgstr "優先順位隨時間增加調整為" - -#: NOT FOUND IN SOURCE -msgid "Override current custom fields with fields from %1" -msgstr "以 %1 表單的自訂欄位取代現有欄位" - -#: NOT FOUND IN SOURCE -msgid "Override global rights" -msgstr "取代全域權限" - -#: NOT FOUND IN SOURCE -msgid "OverrideGlobalACL status %1" -msgstr "取代全域權限 %1" - -#: NOT FOUND IN SOURCE -msgid "Overview" -msgstr "總覽" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "Own tickets" -msgstr "承辦申請單" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "OwnTicket" -msgstr "承辦申請單" - -#: etc/initialdata:38 html/Elements/QuickCreate:56 html/Search/Elements/PickBasics:101 html/Ticket/Create.html:72 html/Ticket/Elements/EditBasics:61 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/Reminders:129 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:110 lib/RT/Tickets_Overlay.pm:2006 -msgid "Owner" -msgstr "承辦人" - -#: NOT FOUND IN SOURCE -msgid "Owner changed from %1 to %2" -msgstr "承辦人已從 %1 改為 %2" - -#: lib/RT/Ticket_Overlay.pm:505 -msgid "Owner could not be set." -msgstr "無法設定承辦人。" - -#: lib/RT/Transaction_Overlay.pm:672 -#. ($Old->Name , $New->Name) -msgid "Owner forcibly changed from %1 to %2" -msgstr "強制將承辦人從 %1 改為 %2" - -#: NOT FOUND IN SOURCE -msgid "Owner is" -msgstr "承辦人" - -#: NOT FOUND IN SOURCE -msgid "Owner's Phone" -msgstr "承辦人電話" - -#: NOT FOUND IN SOURCE -msgid "Page #" -msgstr " " - -#: html/Elements/TicketList:78 -#. ($Page, int($TotalFound/$Rows)+$oddRows) -msgid "Page %1 of %2" -msgstr "第 %1/%2 頁" - -#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:96 -msgid "Pager" -msgstr "呼叫器" - -#: NOT FOUND IN SOURCE -msgid "PagerPhone" -msgstr "呼叫器號碼" - -#: NOT FOUND IN SOURCE -msgid "Parameter" -msgstr "呼叫參數" - -#: NOT FOUND IN SOURCE -msgid "Parent" -msgstr "上級" - -#: html/Elements/EditLinks:144 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:222 html/Ticket/Elements/BulkLinks:60 -msgid "Parents" -msgstr "母申請單" - -#: NOT FOUND IN SOURCE -msgid "Park Space" -msgstr "停車位申請" - -#: html/Elements/Login:95 html/User/Prefs.html:105 -msgid "Password" -msgstr "密碼" - -#: html/NoAuth/Reminder.html:46 -msgid "Password Reminder" -msgstr "密碼提示" - -#: lib/RT/Transaction_Overlay.pm:781 lib/RT/User_Overlay.pm:1045 -msgid "Password changed" -msgstr "" - -#: lib/RT/User_Overlay.pm:1037 lib/RT/User_Overlay.pm:214 -#. ($RT::MinimumPasswordLength) -msgid "Password needs to be at least %1 characters long" -msgstr "密碼長度至少必須為 %1 個字元" - -#: lib/RT/User_Overlay.pm:1044 -msgid "Password set" -msgstr "密碼已設定" - -#: NOT FOUND IN SOURCE -msgid "Password too short" -msgstr "密碼太短" - -#: html/User/Prefs.html:240 -#. (loc_fuzzy($msg)) -msgid "Password: %1" -msgstr "密碼:%1" - -#: lib/RT/User_Overlay.pm:1030 -msgid "Password: Permission Denied" -msgstr "" - -#: html/Admin/Users/Modify.html:364 -msgid "Passwords do not match." -msgstr "密碼確認失敗。" - -#: html/User/Prefs.html:242 -msgid "Passwords do not match. Your password has not been changed" -msgstr "密碼確認失敗。您的密碼並未改變。" - -#: NOT FOUND IN SOURCE -msgid "Pelase select a queue" -msgstr "請選擇表單名稱" - -#: NOT FOUND IN SOURCE -msgid "Pending Approval" -msgstr "等待簽核" - -#: html/Ticket/Elements/ShowSummary:62 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 -msgid "People" -msgstr "人員" - -#: NOT FOUND IN SOURCE -msgid "People with Queue Rights" -msgstr "擁有表單權限人員" - -#: etc/initialdata:133 -msgid "Perform a user-defined action" -msgstr "執行使用者自訂的動作" - -#: html/Admin/Tools/Configuration.html:94 -msgid "Perl configuration" -msgstr "Perl 設定" - -#: lib/RT/ACE_Overlay.pm:251 lib/RT/ACE_Overlay.pm:257 lib/RT/ACE_Overlay.pm:580 lib/RT/ACE_Overlay.pm:590 lib/RT/ACE_Overlay.pm:600 lib/RT/ACE_Overlay.pm:665 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:405 lib/RT/Attribute_Overlay.pm:414 lib/RT/Attribute_Overlay.pm:427 lib/RT/CurrentUser.pm:116 lib/RT/CurrentUser.pm:125 lib/RT/CustomField_Overlay.pm:1017 lib/RT/CustomField_Overlay.pm:1138 lib/RT/CustomField_Overlay.pm:1281 lib/RT/CustomField_Overlay.pm:172 lib/RT/CustomField_Overlay.pm:189 lib/RT/CustomField_Overlay.pm:200 lib/RT/CustomField_Overlay.pm:374 lib/RT/CustomField_Overlay.pm:403 lib/RT/CustomField_Overlay.pm:763 lib/RT/CustomField_Overlay.pm:936 lib/RT/CustomField_Overlay.pm:971 lib/RT/Group_Overlay.pm:1117 lib/RT/Group_Overlay.pm:1121 lib/RT/Group_Overlay.pm:1130 lib/RT/Group_Overlay.pm:1240 lib/RT/Group_Overlay.pm:1244 lib/RT/Group_Overlay.pm:1250 lib/RT/Group_Overlay.pm:445 lib/RT/Group_Overlay.pm:542 lib/RT/Group_Overlay.pm:620 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:726 lib/RT/Group_Overlay.pm:730 lib/RT/Group_Overlay.pm:736 lib/RT/Group_Overlay.pm:922 lib/RT/Group_Overlay.pm:926 lib/RT/Group_Overlay.pm:939 lib/RT/Queue_Overlay.pm:1054 lib/RT/Queue_Overlay.pm:140 lib/RT/Queue_Overlay.pm:158 lib/RT/Queue_Overlay.pm:657 lib/RT/Queue_Overlay.pm:667 lib/RT/Queue_Overlay.pm:681 lib/RT/Queue_Overlay.pm:819 lib/RT/Queue_Overlay.pm:828 lib/RT/Queue_Overlay.pm:841 lib/RT/Scrip_Overlay.pm:149 lib/RT/Scrip_Overlay.pm:160 lib/RT/Scrip_Overlay.pm:224 lib/RT/Scrip_Overlay.pm:538 lib/RT/Template_Overlay.pm:108 lib/RT/Template_Overlay.pm:277 lib/RT/Ticket_Overlay.pm:1357 lib/RT/Ticket_Overlay.pm:1367 lib/RT/Ticket_Overlay.pm:1381 lib/RT/Ticket_Overlay.pm:1522 lib/RT/Ticket_Overlay.pm:1532 lib/RT/Ticket_Overlay.pm:1546 lib/RT/Ticket_Overlay.pm:1663 lib/RT/Ticket_Overlay.pm:1983 lib/RT/Ticket_Overlay.pm:2126 lib/RT/Ticket_Overlay.pm:2296 lib/RT/Ticket_Overlay.pm:2346 lib/RT/Ticket_Overlay.pm:2525 lib/RT/Ticket_Overlay.pm:2538 lib/RT/Ticket_Overlay.pm:2614 lib/RT/Ticket_Overlay.pm:2627 lib/RT/Ticket_Overlay.pm:2748 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2990 lib/RT/Ticket_Overlay.pm:3000 lib/RT/Ticket_Overlay.pm:3005 lib/RT/Ticket_Overlay.pm:3224 lib/RT/Ticket_Overlay.pm:3228 lib/RT/Ticket_Overlay.pm:3371 lib/RT/Ticket_Overlay.pm:3497 lib/RT/Transaction_Overlay.pm:516 lib/RT/Transaction_Overlay.pm:523 lib/RT/Transaction_Overlay.pm:551 lib/RT/Transaction_Overlay.pm:558 lib/RT/User_Overlay.pm:1176 lib/RT/User_Overlay.pm:1856 lib/RT/User_Overlay.pm:369 lib/RT/User_Overlay.pm:735 lib/RT/User_Overlay.pm:774 -msgid "Permission Denied" -msgstr "權限不足" - -#: NOT FOUND IN SOURCE -msgid "Permission Settings" -msgstr "權限設定" - -#: lib/RT/Template_Overlay.pm:238 lib/RT/Template_Overlay.pm:247 -msgid "Permission denied" -msgstr "" - -#: lib/RT/Template_Overlay.pm:372 -msgid "Permissions denied" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Permitted Queues:" -msgstr "擁有權限表單列表:" - -#: NOT FOUND IN SOURCE -msgid "Personal" -msgstr "代理人群組" - -#: html/User/Elements/Tabs:56 -msgid "Personal Groups" -msgstr "代理人群組" - -#: NOT FOUND IN SOURCE -msgid "Personal Homepage" -msgstr "個人首頁" - -#: NOT FOUND IN SOURCE -msgid "Personal Todo" -msgstr "私人待辦事項" - -#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 -msgid "Personal groups" -msgstr "代理人群組" - -#: html/User/Elements/DelegateRights:58 -msgid "Personal groups:" -msgstr "代理人群組:" - -#: NOT FOUND IN SOURCE -msgid "PersonalHomepage" -msgstr "個人首頁" - -#: NOT FOUND IN SOURCE -msgid "Phase 1: Create/Rename Groups (%1)" -msgstr "第一階段:群組建立及改名 (%1)" - -#: NOT FOUND IN SOURCE -msgid "Phase 2: Disable/Enable Groups (%1)" -msgstr "第二階段:群組停用及啟用 (%1)" - -#: NOT FOUND IN SOURCE -msgid "Phase 3: Create/Rename Users (%1)" -msgstr "第三階段:使用者建立及改名 (%1)" - -#: NOT FOUND IN SOURCE -msgid "Phase 4: Disable/Enable Users (%1)" -msgstr "第四階段:使用者停用及啟用 (%1)" - -#: NOT FOUND IN SOURCE -msgid "Phone" -msgstr "電話" - -#: NOT FOUND IN SOURCE -msgid "Phone number" -msgstr "電話號碼" - -#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:81 -msgid "Phone numbers" -msgstr "電話號碼" - -#: NOT FOUND IN SOURCE -msgid "Pick" -msgstr "挑選" - -#: NOT FOUND IN SOURCE -msgid "Place of Departure" -msgstr "出發地點" - -#: NOT FOUND IN SOURCE -msgid "Placeholder" -msgstr "尚未完工" - -#: NOT FOUND IN SOURCE -msgid "Please Select" -msgstr "請選擇" - -#: NOT FOUND IN SOURCE -msgid "Please check items to be deleted first." -msgstr "請先選中要刪除的對象" - -#: NOT FOUND IN SOURCE -msgid "Please select a group" -msgstr "請選擇群組" - -#: NOT FOUND IN SOURCE -msgid "Please select a queue's workflow" -msgstr "請選擇表單流程" - -#: NOT FOUND IN SOURCE -msgid "Please select one of the category types above." -msgstr "請從上面選擇一項分類。" - -#: NOT FOUND IN SOURCE -msgid "Please select role" -msgstr "請選擇角色" - -#: NOT FOUND IN SOURCE -msgid "Policy" -msgstr "經營規章" - -#: NOT FOUND IN SOURCE -msgid "Position" -msgstr "職務" - -#: NOT FOUND IN SOURCE -msgid "Position Level" -msgstr "職等" - -#: NOT FOUND IN SOURCE -msgid "Position Name" -msgstr "職務名稱" - -#: NOT FOUND IN SOURCE -msgid "Position Number" -msgstr "職務代碼" - -#: NOT FOUND IN SOURCE -msgid "Position Rank" -msgstr "職級" - -#: NOT FOUND IN SOURCE -msgid "Pref" -msgstr "偏好" - -#: html/Elements/Header:93 html/Elements/Tabs:91 html/SelfService/Elements/Tabs:95 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 -msgid "Preferences" -msgstr "偏好" - -#: html/Admin/Users/MyRT.html:75 -#. ($pane, $UserObj->Name) -msgid "Preferences %1 for user %2 ." -msgstr "使用者 %2 的 %1 偏好。" - -#: html/Prefs/MyRT.html:141 -#. ($pane) -msgid "Preferences saved for %1." -msgstr "成功儲存 %1 的偏好。" - -#: NOT FOUND IN SOURCE -msgid "Prefs" -msgstr "個人資訊" - -#: lib/RT/Action/Generic.pm:195 -msgid "Prepare Stubbed" -msgstr "預備動作完畢" - -#: html/Helpers/CalPopup.html:56 html/Ticket/Elements/Tabs:84 -msgid "Prev" -msgstr "上一項" - -#: html/Elements/TicketList:101 -msgid "Previous Page" -msgstr "上一頁" - -#: NOT FOUND IN SOURCE -msgid "Previous page" -msgstr "前一頁" - -#: NOT FOUND IN SOURCE -msgid "Pri" -msgstr "優先順位" - -#: lib/RT/ACE_Overlay.pm:157 lib/RT/ACE_Overlay.pm:239 lib/RT/ACE_Overlay.pm:569 -#. ($args{'PrincipalId'}) -msgid "Principal %1 not found." -msgstr "找不到單位 %1。" - -#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:181 html/Ticket/Elements/EditBasics:92 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1790 -msgid "Priority" -msgstr "優先順位" - -#: html/Admin/Queues/Modify.html:86 -msgid "Priority starts at" -msgstr "優先順位起始值" - -#: html/Search/Elements/EditSearches:50 -msgid "Privacy:" -msgstr "隱私設定:" - -#: etc/initialdata:25 -msgid "Privileged" -msgstr "內部成員" - -#: html/Admin/Users/Modify.html:342 html/User/Prefs.html:231 -#. (loc_fuzzy($msg)) -msgid "Privileged status: %1" -msgstr "內部成員狀態:%1" - -#: html/Admin/Users/index.html:102 -msgid "Privileged users" -msgstr "內部成員" - -#: NOT FOUND IN SOURCE -msgid "Process Status" -msgstr "處理狀態" - -#: NOT FOUND IN SOURCE -msgid "Project" -msgstr "專案" - -#: NOT FOUND IN SOURCE -msgid "Project Name" -msgstr "專案名稱" - -#: NOT FOUND IN SOURCE -msgid "Projects" -msgstr "專案" - -#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 -msgid "Pseudogroup for internal use" -msgstr "內部用的虛擬群組" - -#: NOT FOUND IN SOURCE -msgid "Public Description" -msgstr "公開說明" - -#: NOT FOUND IN SOURCE -msgid "Public Info" -msgstr "公開資訊" - -#: NOT FOUND IN SOURCE -msgid "Public Service" -msgstr "公共事務區" - -#: NOT FOUND IN SOURCE -msgid "Purging stale data: %1" -msgstr "移除過期資料: %1" - -#: NOT FOUND IN SOURCE -msgid "Query" -msgstr "查詢" - -#: html/Search/Build.html:121 -msgid "Query Builder" -msgstr "建立查詢" - -#: html/Search/Elements/Chart:101 -msgid "Query:" -msgstr "" - -#: html/Elements/QueueSummary:48 html/Elements/QuickCreate:54 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:62 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/Tools/Reports/CreatedByDates.html:85 html/Tools/Reports/ResolvedByDates.html:86 html/Tools/Reports/ResolvedByOwner.html:66 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1617 -msgid "Queue" -msgstr "表單" - -#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 -#. ($Queue) -#. ($id) -msgid "Queue %1 not found" -msgstr "找不到表單 %1" - -#: NOT FOUND IN SOURCE -msgid "Queue '%1' not found\\n" -msgstr "找不到表單 '%1'\\n" - -#: NOT FOUND IN SOURCE -msgid "Queue Keyword Selections" -msgstr "表單關鍵字選取" - -#: html/Admin/Queues/Modify.html:64 -msgid "Queue Name" -msgstr "表單名稱" - -#: NOT FOUND IN SOURCE -msgid "Queue Owner" -msgstr "業務承辦人" - -#: NOT FOUND IN SOURCE -msgid "Queue Priority" -msgstr "優先等級" - -#: NOT FOUND IN SOURCE -msgid "Queue Rights" -msgstr "表單權限" - -#: NOT FOUND IN SOURCE -msgid "Queue Scrips" -msgstr "表單手續" - -#: NOT FOUND IN SOURCE -msgid "Queue Setup" -msgstr "表單設定" - -#: lib/RT/Queue_Overlay.pm:365 -msgid "Queue already exists" -msgstr "表單已存在" - -#: lib/RT/Queue_Overlay.pm:374 lib/RT/Queue_Overlay.pm:380 -msgid "Queue could not be created" -msgstr "無法新增表單" - -#: html/Ticket/Create.html:244 lib/t/regression/01ticket_link_searching.t:17 -msgid "Queue could not be loaded." -msgstr "無法載入表單" - -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:384 lib/RT/StyleGuide.pod:809 -msgid "Queue created" -msgstr "表單新增完畢" - -#: NOT FOUND IN SOURCE -msgid "Queue is not specified." -msgstr "未指定表單。" - -#: html/SelfService/Display.html:126 lib/RT/CustomField_Overlay.pm:197 -msgid "Queue not found" -msgstr "找不到表單" - -#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 -msgid "Queues" -msgstr "表單" - -#: html/Elements/MyAdminQueues:46 -msgid "Queues I administer" -msgstr "" - -#: html/Elements/MySupportQueues:46 -msgid "Queues I'm an AdminCc for" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Quick Search" -msgstr "表單現況" - -#: html/Elements/Quicksearch:47 html/Prefs/Elements/Tabs:58 html/Prefs/Quicksearch.html:70 -msgid "Quick search" -msgstr "表單一覽" - -#: html/Elements/QuickCreate:47 -msgid "Quick ticket creation" -msgstr "快速建立申請單" - -#: html/Search/Results.html:81 -msgid "RSS" -msgstr "RSS" - -#: NOT FOUND IN SOURCE -msgid "RT %1" -msgstr "RT %1" - -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:796 -#. ($RT::VERSION, $RT::rtname) -msgid "RT %1 for %2" -msgstr "%2:RT %1 版" - -#: NOT FOUND IN SOURCE -msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." -msgstr "RT %1 版,<a href=\"http://bestpractical.com\">Best Practical Solutions 公司</a>出品。" - -#: NOT FOUND IN SOURCE -msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" -msgstr "RT %1。版權所有 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" - -#: NOT FOUND IN SOURCE -msgid "RT %1. Copyright 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" -msgstr "RT %1。版權所有 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" - -#: html/Admin/index.html:46 html/Admin/index.html:47 -msgid "RT Administration" -msgstr "RT 管理頁面" - -#: NOT FOUND IN SOURCE -msgid "RT Authentication error." -msgstr "RT 認證錯誤。" - -#: NOT FOUND IN SOURCE -msgid "RT Bounce: %1" -msgstr "RT 退信:%1" - -#: NOT FOUND IN SOURCE -msgid "RT Configuration error" -msgstr "RT 設定錯誤" - -#: NOT FOUND IN SOURCE -msgid "RT Critical error. Message not recorded!" -msgstr "RT 致命錯誤。訊息未被紀錄。" - -#: html/Elements/Error:63 html/SelfService/Error.html:62 -msgid "RT Error" -msgstr "RT 錯誤" - -#: NOT FOUND IN SOURCE -msgid "RT Received mail (%1) from itself." -msgstr "RT 收到從自己寄出的郵件 (%1)。" - -#: NOT FOUND IN SOURCE -msgid "RT Recieved mail (%1) from itself." -msgstr "RT 收到從自己寄出的郵件 (%1)。" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service / Closed Tickets" -msgstr "RT 自助服務/已解決的申請單" - -#: html/Admin/Tools/Configuration.html:73 -msgid "RT Variables" -msgstr "RT 的變數" - -#: html/Admin/Elements/SystemTabs:71 html/Admin/Elements/UserTabs:67 html/Admin/Global/MyRT.html:1 html/Admin/Global/MyRT.html:12 html/Admin/Global/MyRT.html:4 html/Admin/Global/index.html:84 html/Admin/Users/MyRT.html:21 html/Prefs/MyRT.html:66 html/Prefs/MyRT.html:78 html/User/Elements/Tabs:65 html/index.html:1 html/index.html:75 -msgid "RT at a glance" -msgstr "RT 一覽" - -#: html/Admin/Users/MyRT.html:30 -#. ($UserObj->Name) -msgid "RT at a glance for the user %1" -msgstr "使用者 %1 的 RT 一覽" - -#: html/Admin/CustomFields/Modify.html:117 -msgid "RT can include content from another web service when showing this custom field." -msgstr "RT 可於顯示此自訂欄位時引入其他網站的內容" - -#: html/Admin/CustomFields/Modify.html:106 -msgid "RT can make this custom field's values into hyperlinks to another service." -msgstr "RT 可將此自訂欄位的值視為連往其他網站的超鏈結" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't authenticate you" -msgstr "RT 無法認證您的身份" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find requestor via its external database lookup" -msgstr "RT 無法從外部資料庫查詢找到申請人資訊" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find the queue: %1" -msgstr "RT 找不到表單:%1" - -#: html/Elements/SetupSessionCookie:100 -msgid "RT couldn't store your session." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't validate this PGP signature. \\n" -msgstr "RT 無法確認這個 PGP 簽章。\\n" - -#: html/Elements/Logo:49 html/Elements/PageLayout:172 -#. ($RT::rtname) -msgid "RT for %1" -msgstr "%1 專用流程系統" - -#: NOT FOUND IN SOURCE -msgid "RT for %1: %2" -msgstr "%1 專用 RT 系統:%2" - -#: NOT FOUND IN SOURCE -msgid "RT has proccessed your commands" -msgstr "RT 已執行您的命令" - -#: NOT FOUND IN SOURCE -msgid "RT is © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. It is distributed under <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 of the GNU General Public License.</a>" -msgstr "RT 版權所有 1996-%1 Jesse Vincent <jesse@bestpractical.com>。<br>本軟體依 <a href=\"http://www.gnu.org/copyleft/gpl.html\">GNU 通用公共授權第二版</a> 散佈。" - -#: NOT FOUND IN SOURCE -msgid "RT thinks this message may be a bounce" -msgstr "RT 認為這可能是退信" - -#: html/Search/Simple.html:58 -msgid "RT will look for anything else you enter in ticket subjects." -msgstr "RT 會在申請單主旨內搜尋將您鍵入的任何其他字樣" - -#: NOT FOUND IN SOURCE -msgid "RT will process this message as if it were unsigned.\\n" -msgstr "RT 以未簽章方式處理這封郵件。\\n" - -#: html/Admin/CustomFields/Modify.html:108 html/Admin/CustomFields/Modify.html:119 -msgid "RT will replace <tt>__id__</tt> and <tt>__CustomField__</tt> with the record id and custom field value, respectively" -msgstr "RT 會將 <tt>__id__</tt> 及 <tt>__CustomField__</tt> 置換成紀錄編號及自訂欄位" - -#: NOT FOUND IN SOURCE -msgid "RT's email command mode requires PGP authentication. Either you didn't sign your message, or your signature could not be verified." -msgstr "RT 的電子郵件命令模式須要 PGP 認證。您可能沒有簽章,或是您的簽章無法辨識。" - -#: NOT FOUND IN SOURCE -msgid "RT::Queue-Role" -msgstr "表單運行角色" - -#: NOT FOUND IN SOURCE -msgid "RT::System-Role" -msgstr "系統運行角色" - -#: NOT FOUND IN SOURCE -msgid "RT::Ticket-Role" -msgstr "申請單運行角色" - -#: NOT FOUND IN SOURCE -msgid "RT_System" -msgstr "系統訊息" - -#: NOT FOUND IN SOURCE -msgid "Read Only" -msgstr "唯讀" - -#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 -msgid "Real Name" -msgstr "真實姓名" - -#: NOT FOUND IN SOURCE -msgid "RealName" -msgstr "真實姓名" - -#: NOT FOUND IN SOURCE -msgid "Really reject this ticket?" -msgstr "您確定要駁回這張申請單嗎?" - -#: lib/RT/Transaction_Overlay.pm:725 -#. ($value) -msgid "Reference by %1 added" -msgstr "已加入 %1 為參考本申請單" - -#: lib/RT/Transaction_Overlay.pm:765 -#. ($value) -msgid "Reference by %1 deleted" -msgstr "已移除 %1 為參考本申請單" - -#: lib/RT/Transaction_Overlay.pm:722 -#. ($value) -msgid "Reference to %1 added" -msgstr "已加入參考申請單 %1" - -#: lib/RT/Transaction_Overlay.pm:762 -#. ($value) -msgid "Reference to %1 deleted" -msgstr "已移除參考申請單 %1" - -#: html/Elements/EditLinks:103 html/Elements/EditLinks:156 html/Elements/ShowLinks:92 html/Ticket/Create.html:225 html/Ticket/Elements/BulkLinks:72 -msgid "Referred to by" -msgstr "被參考" - -#: html/Elements/EditLinks:152 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:224 html/Ticket/Elements/BulkLinks:68 -msgid "Refers to" -msgstr "參考" - -#: NOT FOUND IN SOURCE -msgid "RefersTo" -msgstr "參考" - -#: NOT FOUND IN SOURCE -msgid "Refine" -msgstr "在結果範圍內查詢" - -#: NOT FOUND IN SOURCE -msgid "Refine search" -msgstr "調整查詢條件" - -#: NOT FOUND IN SOURCE -msgid "Refresh" -msgstr "更新" - -#: html/Elements/Refresh:57 -#. ($value/60) -msgid "Refresh this page every %1 minutes." -msgstr "每 %1 分鐘更新頁面" - -#: lib/RT/Transaction_Overlay.pm:811 -#. ($ticket->Subject) -msgid "Reminder '%1' added" -msgstr "已建立提醒項目「%1」" - -#: lib/RT/Transaction_Overlay.pm:824 -#. ($ticket->Subject) -msgid "Reminder '%1' completed" -msgstr "已完成提醒項目「%1」" - -#: lib/RT/Transaction_Overlay.pm:817 -#. ($ticket->Subject) -msgid "Reminder '%1' reopened" -msgstr "已重新開啟提醒項目「%1」" - -#: html/Ticket/Reminders.html:46 -#. ($Ticket->Id) -msgid "Reminder ticket #%1" -msgstr "提醒項目 #%1" - -#: html/Elements/MyReminders:48 html/Ticket/Elements/ShowSummary:75 html/Ticket/Elements/Tabs:122 html/Ticket/Reminders.html:52 -msgid "Reminders" -msgstr "" - -#: html/Ticket/Reminders.html:50 -#. ($Ticket->Id) -msgid "Reminders for ticket #%1" -msgstr "申請單 #%1 的提醒項目" - -#: NOT FOUND IN SOURCE -msgid "Remove" -msgstr "移除" - -#: html/Search/Bulk.html:94 -msgid "Remove AdminCc" -msgstr "移除管理員副本" - -#: html/Search/Bulk.html:90 -msgid "Remove Cc" -msgstr "移除副本" - -#: html/Search/Bulk.html:86 -msgid "Remove Requestor" -msgstr "移除申請人" - -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:147 -msgid "Reply" -msgstr "回覆" - -#: html/Admin/Queues/Modify.html:72 -msgid "Reply Address" -msgstr "回覆地址" - -#: html/Search/Bulk.html:129 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:78 -msgid "Reply to requestors" -msgstr "回覆申請人" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "Reply to tickets" -msgstr "對申請單進行回覆" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "ReplyToTicket" -msgstr "回覆申請單" - -#: NOT FOUND IN SOURCE -msgid "Report to Duty" -msgstr "上下班刷卡" - -#: NOT FOUND IN SOURCE -msgid "Reported on" -msgstr "到職日期" - -#: html/Tools/Elements/Tabs:59 html/Tools/Reports/index.html:46 html/Tools/Reports/index.html:47 -msgid "Reports" -msgstr "" - -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:111 -msgid "Requestor" -msgstr "申請人" - -#: NOT FOUND IN SOURCE -msgid "Requestor email address" -msgstr "申請人電子郵件信箱位址" - -#: NOT FOUND IN SOURCE -msgid "Requestor's" -msgstr "申請人所屬之第上" - -#: NOT FOUND IN SOURCE -msgid "Requestor's Dept." -msgstr "申請人所屬部門之" - -#: NOT FOUND IN SOURCE -msgid "Requestor's Phone" -msgstr "申請人電話" - -#: NOT FOUND IN SOURCE -msgid "Requestor(s)" -msgstr "申請人" - -#: NOT FOUND IN SOURCE -msgid "RequestorAddresses" -msgstr "申請人地址" - -#: html/SelfService/Create.html:63 html/Ticket/Create.html:80 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 -msgid "Requestors" -msgstr "申請人" - -#: html/Admin/Queues/Modify.html:96 -msgid "Requests should be due in" -msgstr "申請單處理期限" - -#: lib/RT/Attribute_Overlay.pm:146 -#. ('Object') -msgid "Required parameter '%1' not specified" -msgstr "未指定必要的參數「%1」" - -#: html/Elements/Submit:83 -msgid "Reset" -msgstr "重設" - -#: html/Admin/Users/MyRT.html:15 html/Prefs/MyRT.html:60 -msgid "Reset to default" -msgstr "" - -#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:84 -msgid "Residence" -msgstr "住處" - -#: NOT FOUND IN SOURCE -msgid "Resolution" -msgstr "解決狀態" - -#: html/Ticket/Elements/Tabs:156 -msgid "Resolve" -msgstr "解決" - -#: html/Ticket/Update.html:156 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Resolve ticket #%1 (%2)" -msgstr "解決申請單 #%1 (%2)" - -#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1172 -msgid "Resolved" -msgstr "已解決" - -#: html/Tools/Reports/Elements/Tabs:55 -msgid "Resolved by owner" -msgstr "" - -#: html/Tools/Reports/Elements/Tabs:59 -msgid "Resolved in date range" -msgstr "" - -#: html/Tools/Reports/ResolvedByDates.html:52 -msgid "Resolved tickets in period, grouped by owner" -msgstr "" - -#: html/Tools/Reports/ResolvedByOwner.html:50 -msgid "Resolved tickets, grouped by owner" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Response to requestors" -msgstr "回覆申請人" - -#: NOT FOUND IN SOURCE -msgid "Responsibility Type" -msgstr "責任區分" - -#: html/Elements/ListActions:46 html/Search/Elements/NewListActions:47 -msgid "Results" -msgstr "結果" - -#: NOT FOUND IN SOURCE -msgid "Results per page" -msgstr "每頁列出幾筆結果" - -#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 -msgid "Retype Password" -msgstr "再次輸入密碼" - -#: html/Search/Elements/EditSearches:61 -msgid "Revert" -msgstr "復原" - -#: NOT FOUND IN SOURCE -msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" -msgstr "在 %4 (%5) 的範圍內找不到 %2 %3 的 %1 權限\\n" - -#: lib/RT/ACE_Overlay.pm:630 -msgid "Right Delegated" -msgstr "權限代理完畢" - -#: lib/RT/ACE_Overlay.pm:320 -msgid "Right Granted" -msgstr "權限設定完畢" - -#: lib/RT/ACE_Overlay.pm:178 -msgid "Right Loaded" -msgstr "權限載入完畢" - -#: lib/RT/ACE_Overlay.pm:695 lib/RT/ACE_Overlay.pm:716 -msgid "Right could not be revoked" -msgstr "無法撤消權限" - -#: html/User/Delegation.html:85 -msgid "Right not found" -msgstr "找不到權限" - -#: lib/RT/ACE_Overlay.pm:560 lib/RT/ACE_Overlay.pm:655 -msgid "Right not loaded." -msgstr "權限並未載入。" - -#: lib/RT/ACE_Overlay.pm:712 -msgid "Right revoked" -msgstr "權限撤消完畢" - -#: html/Admin/Elements/UserTabs:70 -msgid "Rights" -msgstr "權限及代理人" - -#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:961 -#. ($object_type) -msgid "Rights could not be granted for %1" -msgstr "無法將權限賦予 %1" - -#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:990 -#. ($object_type) -msgid "Rights could not be revoked for %1" -msgstr "無法撤消 %1 的權限" - -#: NOT FOUND IN SOURCE -msgid "Role Members" -msgstr "角色成員" - -#: NOT FOUND IN SOURCE -msgid "Role Name" -msgstr "角色名稱" - -#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 -msgid "Roles" -msgstr "角色" - -#: NOT FOUND IN SOURCE -msgid "RootApproval" -msgstr "交由系統管理員簽核" - -#: html/Prefs/MyRT.html:72 -msgid "Rows per box" -msgstr "" - -#: html/Search/Elements/DisplayOptions:93 -msgid "Rows per page" -msgstr "每頁筆數" - -#: NOT FOUND IN SOURCE -msgid "Run Approval" -msgstr "簽核執行" - -#: NOT FOUND IN SOURCE -msgid "SMTPDebug" -msgstr "SMTP 偵錯紀錄" - -#: NOT FOUND IN SOURCE -msgid "SMTPFrom" -msgstr "SMTP 寄件位址" - -#: NOT FOUND IN SOURCE -msgid "SMTPServer" -msgstr "SMTP 伺服器" - -#: NOT FOUND IN SOURCE -msgid "Sat" -msgstr "星期六" - -#: lib/RT/Date.pm:422 -msgid "Sat." -msgstr "星期六" - -#: html/Prefs/MyRT.html:72 html/Prefs/Quicksearch.html:64 html/Prefs/Search.html:69 html/Prefs/Search.html:69 html/Search/Elements/EditSearches:70 html/Widgets/SelectionBox:211 -msgid "Save" -msgstr "儲存" - -#: html/Admin/Global/Template.html:67 html/Admin/Groups/Modify.html:88 html/Admin/Queues/Modify.html:111 html/Admin/Queues/People.html:126 html/Admin/Users/Modify.html:239 html/Prefs/Quicksearch.html:64 html/Prefs/SearchOptions.html:63 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:61 html/Ticket/ModifyPeople.html:60 html/User/Groups/Modify.html:77 -msgid "Save Changes" -msgstr "儲存更改" - -#: html/User/Prefs.html:181 -msgid "Save Preferences" -msgstr "儲存偏好" - -#: html/Ticket/Elements/PreviewScrips:131 -msgid "Save changes" -msgstr "儲存更改" - -#: lib/RT/SavedSearch.pm:173 -#. ($name) -msgid "Saved search %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Saved searches" -msgstr "已儲存的查詢" - -#: html/Admin/Elements/ListGlobalScrips:60 html/Admin/Global/Scrip.html:77 html/Admin/Queues/Scrip.html:84 -#. ($scrip->Id) -#. ($id) -msgid "Scrip #%1" -msgstr "手續 #%1" - -#: NOT FOUND IN SOURCE -msgid "Scrip Action" -msgstr "訊息通知動作" - -#: NOT FOUND IN SOURCE -msgid "Scrip Condition" -msgstr "訊息通知條件" - -#: lib/RT/Scrip_Overlay.pm:203 -msgid "Scrip Created" -msgstr "手續新增完畢" - -#: html/Admin/Elements/EditScrip:52 -msgid "Scrip Fields" -msgstr "手續欄位" - -#: NOT FOUND IN SOURCE -msgid "Scrip Name" -msgstr "訊息名稱" - -#: html/Admin/Elements/EditScrips:109 -msgid "Scrip deleted" -msgstr "手續刪除完畢" - -#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 -msgid "Scrips" -msgstr "手續" - -#: NOT FOUND IN SOURCE -msgid "Scrips " -msgstr "訊息通知" - -#: NOT FOUND IN SOURCE -msgid "Scrips for %1\\n" -msgstr "%1 的手續\\n" - -#: html/Admin/Queues/Scrips.html:55 -msgid "Scrips which apply to all queues" -msgstr "適用於所有表單的手續" - -#: html/Elements/SimpleSearch:48 html/Search/Simple.html:63 -msgid "Search" -msgstr "查詢" - -#: NOT FOUND IN SOURCE -msgid "Search Criteria" -msgstr "查詢條件" - -#: html/Prefs/SearchOptions.html:47 html/Prefs/SearchOptions.html:50 -msgid "Search Preferences" -msgstr "" - -#: lib/RT/SavedSearch.pm:115 -msgid "Search attribute load failure" -msgstr "搜尋屬性載入失敗" - -#: html/Approvals/Elements/PendingMyApproval:59 -msgid "Search for approvals" -msgstr "簽核單查詢" - -#: html/Search/Simple.html:67 -msgid "Search for tickets" -msgstr "" - -#: html/Search/Simple.html:55 -msgid "Search for tickets. Enter <strong>id</strong> numbers, <strong>queues</strong> by name, Owners by <strong>username</strong> and Requestors by <strong>email address</strong>. RT will look for anything else you enter in ticket bodies and attachments." -msgstr "搜尋申請單。請鍵入<strong>編號</strong>、<strong>表單名稱</strong>、承辦人的<strong>使用者名稱</strong>、或申請人的<strong>電子郵件地址</strong>。以上格式之外的文字,則會在申請單內文及附件內檢索。" - -#: html/User/Elements/Tabs:62 -msgid "Search options" -msgstr "" - -#: html/Search/Chart.html:56 -#. ($PrimaryGroupBy) -msgid "Search results grouped by %1" -msgstr "搜尋結果,依 %1 分組" - -#: lib/RT/SavedSearch.pm:203 -#. ($msg) -msgid "Search update: %1" -msgstr "更新查詢:%1" - -#: NOT FOUND IN SOURCE -msgid "Searches can't be associated with that kind of object" -msgstr "不能對此類物件進行查詢" - -#: html/Search/Simple.html:57 -msgid "Searching the full text of every ticket can take a long time, but if you need to do it, you can search for any word in full ticket history for any word by typing <b>fulltext:<i>word</i></b>." -msgstr "對所有申請單的全文進行檢索,可能會需要很久的時間。但如果您真的有需要,可鍵入 <b>fulltext:<i>文字</i></b> 來搜尋申請單的所有紀錄。" - -#: NOT FOUND IN SOURCE -msgid "Second-" -msgstr "二" - -#: NOT FOUND IN SOURCE -msgid "Second-level Users" -msgstr "二階主管員工" - -#: bin/rt-crontool:265 -msgid "Security:" -msgstr "安全性:" - -#: html/Elements/ShowCustomFields:98 -msgid "See also:" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:105 -msgid "See custom fields" -msgstr "查閱自訂欄位" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "See exact outgoing email messages and their recipeients" -msgstr "查閱送出的電子郵件及收件人" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "See ticket private commentary" -msgstr "查閱申請單內的私人評論" - -#: lib/RT/Queue_Overlay.pm:103 -msgid "See ticket summaries" -msgstr "查閱申請單總覽" - -#: lib/RT/CustomField_Overlay.pm:105 -msgid "SeeCustomField" -msgstr "查閱自訂欄位" - -#: lib/RT/Group_Overlay.pm:169 -msgid "SeeGroup" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "SeeQueue" -msgstr "查閱表單" - -#: NOT FOUND IN SOURCE -msgid "Select" -msgstr "選擇" - -#: NOT FOUND IN SOURCE -msgid "Select All" -msgstr "全選" - -#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 -msgid "Select a Custom Field" -msgstr "選擇自訂欄位" - -#: html/Admin/Groups/index.html:78 -msgid "Select a group" -msgstr "選擇群組" - -#: html/Admin/Queues/index.html:54 -msgid "Select a queue" -msgstr "選擇表單" - -#: html/SelfService/CreateTicketInQueue.html:48 -msgid "Select a queue for your new ticket" -msgstr "為您新的申請單選擇一個表單" - -#: NOT FOUND IN SOURCE -msgid "Select a queue to link to" -msgstr "請選擇欲連結表單" - -#: html/Admin/Users/index.html:46 html/Admin/Users/index.html:49 html/Admin/Users/index.html:52 -msgid "Select a user" -msgstr "選擇使用者" - -#: html/Admin/Elements/CustomFieldTabs:90 -msgid "Select custom field" -msgstr "選擇自訂欄位" - -#: html/Admin/Global/CustomFields/index.html:70 -msgid "Select custom fields for all user groups" -msgstr "選擇適用於所有使用者群組的自訂欄位" - -#: html/Admin/Global/CustomFields/index.html:65 -msgid "Select custom fields for all users" -msgstr "選擇適用於所有使用者的自訂欄位" - -#: html/Admin/Global/CustomFields/index.html:76 -msgid "Select custom fields for tickets in all queues" -msgstr "選擇適用於所有表單內申請單的自訂欄位" - -#: html/Admin/Global/CustomFields/index.html:83 -msgid "Select custom fields for transactions on tickets in all queues" -msgstr "選擇適用於所有表單內申請單之更動的自訂欄位" - -#: html/Admin/Elements/GroupTabs:75 html/User/Elements/GroupTabs:71 -msgid "Select group" -msgstr "選擇群組" - -#: lib/RT/CustomField_Overlay.pm:59 -msgid "Select multiple values" -msgstr "選擇多重項目" - -#: lib/RT/CustomField_Overlay.pm:60 -msgid "Select one value" -msgstr "選擇單一項目" - -#: html/Admin/Elements/QueueTabs:92 -msgid "Select queue" -msgstr "選擇表單" - -#: html/Prefs/Quicksearch.html:53 -msgid "Select queues to be displayed on the \"RT at a glance\" page" -msgstr "" - -#: html/Admin/Global/Scrip.html:59 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:67 html/Admin/Queues/Scrips.html:73 -msgid "Select scrip" -msgstr "選擇手續" - -#: html/Admin/Global/Template.html:78 html/Admin/Global/Templates.html:57 html/Admin/Queues/Template.html:76 html/Admin/Queues/Templates.html:68 -msgid "Select template" -msgstr "選擇範本" - -#: lib/RT/CustomField_Overlay.pm:61 -msgid "Select up to %1 values" -msgstr "選擇最多 %1 個值" - -#: html/Admin/Elements/UserTabs:78 -msgid "Select user" -msgstr "選擇使用者" - -#: NOT FOUND IN SOURCE -msgid "Select workflow" -msgstr "選擇流程" - -#: NOT FOUND IN SOURCE -msgid "SelectExternal" -msgstr "系統選項" - -#: NOT FOUND IN SOURCE -msgid "SelectMultiple" -msgstr "多重選項" - -#: NOT FOUND IN SOURCE -msgid "SelectSingle" -msgstr "單一選項" - -#: html/Admin/Elements/EditCustomFields:58 -msgid "Selected Custom Fields" -msgstr "已選取的自訂欄位" - -#: html/Admin/CustomFields/Objects.html:59 -msgid "Selected objects" -msgstr "已選取的物件" - -#: NOT FOUND IN SOURCE -msgid "Selected users:" -msgstr "已選取的使用者:" - -#: html/Widgets/SelectionBox:209 -msgid "Selections modified. Please save your changes" -msgstr "選取的項目已更改。請儲存您的更動" - -#: NOT FOUND IN SOURCE -msgid "Self Service" -msgstr "自助服務" - -#: etc/initialdata:121 -msgid "Send mail to all watchers" -msgstr "寄信給所有視察員" - -#: etc/initialdata:117 -msgid "Send mail to all watchers as a \"comment\"" -msgstr "以評論方式寄信給所有視察員" - -#: etc/initialdata:112 -msgid "Send mail to requestors and Ccs" -msgstr "寄信給申請人及副本收件人" - -#: etc/initialdata:107 -msgid "Send mail to requestors and Ccs as a comment" -msgstr "以評論方式寄信給申請人及副本收件人" - -#: etc/initialdata:78 -msgid "Sends a message to the requestors" -msgstr "寄信給申請人" - -#: etc/initialdata:125 etc/initialdata:129 -msgid "Sends mail to explicitly listed Ccs and Bccs" -msgstr "寄信給特定的副本及密件副本收件人" - -#: etc/initialdata:94 etc/upgrade/3.1.17/content:7 -msgid "Sends mail to the Ccs" -msgstr "寄信給副本收件人" - -#: etc/initialdata:90 etc/upgrade/3.1.17/content:3 -msgid "Sends mail to the Ccs as a comment" -msgstr "以評論方式寄信給副本收件人" - -#: etc/initialdata:102 -msgid "Sends mail to the administrative Ccs" -msgstr "寄信給管理員副本收件人" - -#: etc/initialdata:98 -msgid "Sends mail to the administrative Ccs as a comment" -msgstr "以評論寄信給管理員副本收件人" - -#: etc/initialdata:82 etc/initialdata:86 -msgid "Sends mail to the owner" -msgstr "寄信給申請人" - -#: NOT FOUND IN SOURCE -msgid "Sep" -msgstr "九月" - -#: lib/RT/Date.pm:449 -msgid "Sep." -msgstr "09" - -#: NOT FOUND IN SOURCE -msgid "September" -msgstr "九月" - -#: NOT FOUND IN SOURCE -msgid "Setting %1's 'Disabled' property to %2" -msgstr "%1 的「停用」屬性已設為 %2" - -#: NOT FOUND IN SOURCE -msgid "Shift Type" -msgstr "班別屬性" - -#: html/Ticket/Elements/ShowTransaction:158 -msgid "Show" -msgstr "顯示" - -#: html/Approvals/index.html:52 -msgid "Show Approvals" -msgstr "顯示待簽核申請單" - -#: html/Search/Elements/EditFormat:56 -msgid "Show Columns" -msgstr "顯示欄位" - -#: html/Ticket/Elements/Tabs:220 -msgid "Show Results" -msgstr "顯示結果" - -#: html/Approvals/Elements/PendingMyApproval:64 -msgid "Show approved requests" -msgstr "顯示已批准的簽核單" - -#: html/Ticket/Create.html:316 -msgid "Show basics" -msgstr "顯示基本資訊" - -#: html/Approvals/Elements/PendingMyApproval:65 -msgid "Show denied requests" -msgstr "顯示已駁回的簽核單" - -#: html/Ticket/Create.html:319 -msgid "Show details" -msgstr "顯示細節" - -#: html/Approvals/Elements/PendingMyApproval:63 -msgid "Show pending requests" -msgstr "顯示待處理的簽核單" - -#: html/Approvals/Elements/PendingMyApproval:66 -msgid "Show requests awaiting other approvals" -msgstr "顯示尚待他人批准的簽核單" - -#: NOT FOUND IN SOURCE -msgid "Show ticket private commentary" -msgstr "顯示申請單內的私人評論" - -#: NOT FOUND IN SOURCE -msgid "Show ticket summaries" -msgstr "顯示申請單摘要" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "ShowACL" -msgstr "顯示權限清單" - -#: lib/RT/System.pm:85 -msgid "ShowConfigTab" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "ShowOutgoingEmail" -msgstr "顯示寄送郵件" - -#: lib/RT/Group_Overlay.pm:168 -msgid "ShowSavedSearches" -msgstr "顯示已儲存的查詢" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "ShowScrips" -msgstr "顯示手續" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "ShowTemplate" -msgstr "顯示範本" - -#: lib/RT/Queue_Overlay.pm:103 -msgid "ShowTicket" -msgstr "顯示申請單" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "ShowTicketComments" -msgstr "顯示申請單的評論" - -#: lib/RT/Queue_Overlay.pm:107 -msgid "Sign up as a ticket Requestor or ticket or queue Cc" -msgstr "登記成為申請人或副本收件人" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "Sign up as a ticket or queue AdminCc" -msgstr "登記成為管理員副本收件人" - -#: html/Admin/Users/Modify.html:230 html/User/Prefs.html:168 -msgid "Signature" -msgstr "簽名檔" - -#: NOT FOUND IN SOURCE -msgid "Signed in as %1" -msgstr "使用者:%1" - -#: html/Elements/Tabs:68 -msgid "Simple Search" -msgstr "" - -#: html/Admin/Elements/SelectSingleOrMultiple:47 -msgid "Single" -msgstr "單一" - -#: html/Search/Elements/EditFormat:75 -msgid "Size" -msgstr "" - -#: html/Elements/Header:89 -msgid "Skip Menu" -msgstr "略過選單" - -#: html/Search/Elements/EditFormat:78 -msgid "Small" -msgstr "" - -#: html/Admin/CustomFields/Modify.html:120 -msgid "Some browsers may only load content from the same domain as your RT server." -msgstr "某些瀏覽器只允許載入和 RT 伺服器同一個網域的內容。" - -#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 -msgid "Sort" -msgstr "順序" - -#: NOT FOUND IN SOURCE -msgid "Sort key" -msgstr "排序方式" - -#: NOT FOUND IN SOURCE -msgid "Sort results by" -msgstr "結果排序方式" - -#: NOT FOUND IN SOURCE -msgid "SortOrder" -msgstr "排序順序" - -#: html/Admin/Elements/EditScrip:78 -msgid "Stage" -msgstr "關卡" - -#: NOT FOUND IN SOURCE -msgid "Stage Action" -msgstr "關卡運行動作" - -#: NOT FOUND IN SOURCE -msgid "Stage Condition" -msgstr "關卡運行條件" - -#: NOT FOUND IN SOURCE -msgid "Stalled" -msgstr "延宕" - -#: NOT FOUND IN SOURCE -msgid "Start page" -msgstr "首頁" - -#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 -msgid "Started" -msgstr "實際起始日" - -#: NOT FOUND IN SOURCE -msgid "Started date '%1' could not be parsed" -msgstr "無法解讀起始日期 '%1" - -#: html/Elements/SelectDateType:52 html/Ticket/Create.html:208 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 -msgid "Starts" -msgstr "應起始日" - -#: NOT FOUND IN SOURCE -msgid "Starts By" -msgstr "應起始日" - -#: NOT FOUND IN SOURCE -msgid "Starts date '%1' could not be parsed" -msgstr "無法解讀起始日期 '%1" - -#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 -msgid "State" -msgstr "州" - -#: html/Search/Elements/PickBasics:87 html/SelfService/Update.html:57 html/Ticket/Create.html:66 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:1651 -msgid "Status" -msgstr "現況" - -#: etc/initialdata:309 -msgid "Status Change" -msgstr "現況改變時" - -#: NOT FOUND IN SOURCE -msgid "Status changed from %1 to %2" -msgstr "現況從 %1 改為 %2" - -#: NOT FOUND IN SOURCE -msgid "StatusChange" -msgstr "現況改變時" - -#: html/Ticket/Elements/Tabs:178 -msgid "Steal" -msgstr "強制更換承辦人" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "Steal tickets" -msgstr "強制承辦申請單" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "StealTicket" -msgstr "強制承辦申請單" - -#: lib/RT/Transaction_Overlay.pm:678 -#. ($Old->Name) -msgid "Stolen from %1" -msgstr "承辦人從 %1 強制更換" - -#: NOT FOUND IN SOURCE -msgid "Stolen from %1 " -msgstr "承辦人從 %1 強制更換 " - -#: html/Search/Elements/EditFormat:81 -msgid "Style" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Subgroup" -msgstr "子群組" - -#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:132 html/SelfService/Create.html:79 html/SelfService/Update.html:65 html/Ticket/Create.html:108 html/Ticket/Elements/EditBasics:48 html/Ticket/Elements/Reminders:125 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:82 lib/RT/Ticket_Overlay.pm:1162 lib/RT/Tickets_Overlay.pm:1733 -msgid "Subject" -msgstr "主題" - -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:700 -#. ($self->Data) -msgid "Subject changed to %1" -msgstr "標題已改為 %1" - -#: html/Elements/Submit:75 -msgid "Submit" -msgstr "送出" - -#: NOT FOUND IN SOURCE -msgid "Submit Workflow" -msgstr "送出流程" - -#: lib/RT/Group_Overlay.pm:774 -msgid "Succeeded" -msgstr "設定成功" - -#: NOT FOUND IN SOURCE -msgid "Sun" -msgstr "星期日" - -#: lib/RT/Date.pm:423 -msgid "Sun." -msgstr "星期日" - -#: lib/RT/System.pm:75 -msgid "SuperUser" -msgstr "系統管理員" - -#: NOT FOUND IN SOURCE -msgid "Sync now" -msgstr "執行同步" - -#: NOT FOUND IN SOURCE -msgid "Sync104HRMS" -msgstr "自動同步104HRMS" - -#: NOT FOUND IN SOURCE -msgid "Synchronizing HRMS data. This may take a while..." -msgstr "正在同步化 HRMS 人事系統資料。請稍待..." - -#: html/User/Elements/DelegateRights:98 -msgid "System" -msgstr "系統" - -#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 -msgid "System Configuration" -msgstr "系統設定" - -#: NOT FOUND IN SOURCE -msgid "System Defined" -msgstr "系統定義" - -#: html/Admin/CustomFields/GroupRights.html:128 html/Admin/CustomFields/GroupRights.html:155 html/Admin/CustomFields/UserRights.html:128 html/Admin/CustomFields/UserRights.html:98 html/Admin/Elements/SelectRights:106 lib/RT/ACE_Overlay.pm:584 lib/RT/Interface/Web.pm:960 lib/RT/Interface/Web.pm:989 -msgid "System Error" -msgstr "系統錯誤" - -#: NOT FOUND IN SOURCE -msgid "System Error. Right not granted." -msgstr "系統錯誤。設定權限失敗。" - -#: NOT FOUND IN SOURCE -msgid "System Error. right not granted" -msgstr "系統錯誤。設定權限失敗。" - -#: lib/RT/Transaction_Overlay.pm:224 lib/RT/Transaction_Overlay.pm:230 -#. ($msg) -msgid "System Error: %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "System Rights" -msgstr "系統權限" - -#: html/Admin/Tools/index.html:47 -msgid "System Tools" -msgstr "系統工具" - -#: lib/RT/ACE_Overlay.pm:633 -msgid "System error. Right not delegated." -msgstr "系統錯誤。權限代理失敗。" - -#: lib/RT/ACE_Overlay.pm:163 lib/RT/ACE_Overlay.pm:228 lib/RT/ACE_Overlay.pm:323 lib/RT/ACE_Overlay.pm:920 -msgid "System error. Right not granted." -msgstr "系統錯誤。設定權限失敗。" - -#: NOT FOUND IN SOURCE -msgid "System error. Unable to grant rights." -msgstr "系統錯誤。無法設定權限。" - -#: html/Admin/CustomFields/GroupRights.html:58 html/Admin/Global/GroupRights.html:56 html/Admin/Groups/GroupRights.html:58 html/Admin/Queues/GroupRights.html:57 -msgid "System groups" -msgstr "系統群組" - -#: NOT FOUND IN SOURCE -msgid "SystemInternal" -msgstr "系統內部用" - -#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 -msgid "SystemRolegroup for internal use" -msgstr "內部使用的系統角色群組" - -#: lib/RT/CurrentUser.pm:357 -msgid "TEST_STRING" -msgstr "TEST_STRING" - -#: NOT FOUND IN SOURCE -msgid "TabbedUI" -msgstr "頁籤介面" - -#: etc/initialdata:603 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:170 -msgid "Take" -msgstr "受理" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "Take tickets" -msgstr "自行承辦申請單" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "TakeTicket" -msgstr "自行承辦申請單" - -#: lib/RT/Transaction_Overlay.pm:663 -msgid "Taken" -msgstr "已受理" - -#: NOT FOUND IN SOURCE -msgid "Task" -msgstr "工作事項" - -#: html/Admin/Elements/EditScrip:71 html/Tools/Offline.html:78 -msgid "Template" -msgstr "範本" - -#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 -#. ($TemplateObj->Id()) -msgid "Template #%1" -msgstr "範本 #%1" - -#: NOT FOUND IN SOURCE -msgid "Template Content" -msgstr "通知範本內容" - -#: NOT FOUND IN SOURCE -msgid "Template Description" -msgstr "通知範本描述" - -#: NOT FOUND IN SOURCE -msgid "Template Name" -msgstr "通知範本名稱" - -#: html/Admin/Elements/EditTemplates:110 -msgid "Template deleted" -msgstr "範本已刪除" - -#: lib/RT/Scrip_Overlay.pm:176 -msgid "Template is mandatory argument" -msgstr "" - -#: lib/RT/Scrip_Overlay.pm:180 -msgid "Template not found" -msgstr "找不到範本" - -#: NOT FOUND IN SOURCE -msgid "Template not found\\n" -msgstr "找不到範本\\n" - -#: lib/RT/Template_Overlay.pm:343 -msgid "Template parsed" -msgstr "範本剖析完畢" - -#: lib/RT/Template_Overlay.pm:391 -msgid "Template parsing error" -msgstr "" - -#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 -msgid "Templates" -msgstr "範本" - -#: NOT FOUND IN SOURCE -msgid "Templates " -msgstr "通知範本" - -#: NOT FOUND IN SOURCE -msgid "Templates for %1\\n" -msgstr "找不到 %1 的範本\\n" - -#: NOT FOUND IN SOURCE -msgid "Text" -msgstr "文字" - -#: lib/RT/CustomField_Overlay.pm:943 lib/RT/Record.pm:945 -msgid "That is already the current value" -msgstr "已經是目前欄位的值" - -#: lib/RT/CustomField_Overlay.pm:412 -msgid "That is not a value for this custom field" -msgstr "這不是該自訂欄位的值" - -#: lib/RT/Ticket_Overlay.pm:1994 -msgid "That is the same value" -msgstr "同樣的值" - -#: lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:614 -msgid "That principal already has that right" -msgstr "這項單位已經擁有該權限" - -#: lib/RT/Queue_Overlay.pm:753 -#. ($args{'Type'}) -msgid "That principal is already a %1 for this queue" -msgstr "這項單位已經是這個表單的 %1" - -#: lib/RT/Ticket_Overlay.pm:1435 -#. ($self->loc($args{'Type'})) -msgid "That principal is already a %1 for this ticket" -msgstr "這項單位已經是這份申請單的 %1" - -#: lib/RT/Queue_Overlay.pm:852 -#. ($args{'Type'}) -msgid "That principal is not a %1 for this queue" -msgstr "這項單位不是這個表單的 %1" - -#: NOT FOUND IN SOURCE -msgid "That principal is not a %1 for this ticket" -msgstr "這項單位不是這份申請單的 %1" - -#: lib/RT/Ticket_Overlay.pm:1990 -msgid "That queue does not exist" -msgstr "此表單不存在" - -#: lib/RT/Ticket_Overlay.pm:3233 -msgid "That ticket has unresolved dependencies" -msgstr "這份申請單有尚未解決的附屬申請單" - -#: NOT FOUND IN SOURCE -msgid "That user already has that right" -msgstr "使用者已具有該項權限" - -#: lib/RT/Action/CreateTickets.pm:710 lib/RT/Ticket_Overlay.pm:3037 -msgid "That user already owns that ticket" -msgstr "該使用者已經承辦這份申請單" - -#: lib/RT/Ticket_Overlay.pm:3012 -msgid "That user does not exist" -msgstr "使用者不存在" - -#: lib/RT/User_Overlay.pm:389 -msgid "That user is already privileged" -msgstr "這名使用者已經是內部成員" - -#: lib/RT/User_Overlay.pm:410 -msgid "That user is already unprivileged" -msgstr "這名使用者屬於非內部成員群組" - -#: lib/RT/User_Overlay.pm:402 -msgid "That user is now privileged" -msgstr "使用者加入內部成員群組完畢" - -#: lib/RT/User_Overlay.pm:423 -msgid "That user is now unprivileged" -msgstr "這名使用者已加入非內部成員群組" - -#: NOT FOUND IN SOURCE -msgid "That user is now unprivilegedileged" -msgstr "這名使用者已加入非內部成員群組" - -#: lib/RT/Ticket_Overlay.pm:3031 -msgid "That user may not own tickets in that queue" -msgstr "使用者可能沒有承辦表單裡的申請單" - -#: lib/RT/Link_Overlay.pm:233 -msgid "That's not a numerical id" -msgstr "這不是一個數字編號" - -#: html/SelfService/Display.html:53 html/Ticket/Create.html:177 html/Ticket/Elements/ShowSummary:49 -msgid "The Basics" -msgstr "基本資訊" - -#: lib/RT/ACE_Overlay.pm:112 -msgid "The CC of a ticket" -msgstr "申請單的副本收件人" - -#: lib/RT/ACE_Overlay.pm:113 -msgid "The administrative CC of a ticket" -msgstr "申請單的管理員副本收件人" - -#: NOT FOUND IN SOURCE -msgid "The comment has been recorded" -msgstr "評論已被紀錄" - -#: bin/rt-crontool:275 -msgid "The following command will find all active tickets in the queue 'general' and set their priority to 99 if they haven't been touched in 4 hours:" -msgstr "下列命令會找到 'general' 表單內所有運作中的申請單,並將其中 4 小時內未處理的申請單優先程度設為 99:" - -#: NOT FOUND IN SOURCE -msgid "The following commands were not proccessed:\\n\\n" -msgstr "以下命令未被執行:\\n\\n" - -#: lib/RT/Record.pm:948 -msgid "The new value has been set." -msgstr "新的欄位值設定完成。" - -#: lib/RT/ACE_Overlay.pm:110 -msgid "The owner of a ticket" -msgstr "申請單的承辦人" - -#: lib/RT/ACE_Overlay.pm:111 -msgid "The requestor of a ticket" -msgstr "申請單的申請人" - -#: html/Admin/Elements/EditUserComments:47 -msgid "These comments aren't generally visible to the user" -msgstr "該使用者不會看見這些評論" - -#: NOT FOUND IN SOURCE -msgid "Third-" -msgstr "三" - -#: lib/RT/CustomField_Overlay.pm:978 -msgid "This custom field does not apply to that object" -msgstr "此自訂欄位不適用於該物件" - -#: html/Admin/Tools/Configuration.html:50 -msgid "This feature is only available to system administrators" -msgstr "此項功能僅限系統管理員使用" - -#: html/Ticket/Elements/PreviewScrips:96 -msgid "This message will be sent to..." -msgstr "此訊息會寄給..." - -#: NOT FOUND IN SOURCE -msgid "This ticket %1 %2 (%3)\\n" -msgstr "申請單 %1 %2 (%3)\\n" - -#: bin/rt-crontool:266 -msgid "This tool allows the user to run arbitrary perl modules from within RT." -msgstr "此工具程式會讓使用者經由 RT 執行任意命令。" - -#: lib/RT/Transaction_Overlay.pm:301 -msgid "This transaction appears to have no content" -msgstr "此項更動報告沒有內容" - -#: html/Ticket/Elements/ShowRequestor:70 -#. ($rows) -msgid "This user's %1 highest priority tickets" -msgstr "使用者送出的前 %1 份優先處理申請單" - -#: NOT FOUND IN SOURCE -msgid "This user's 25 highest priority tickets" -msgstr "使用者送出的前 25 份優先處理申請單" - -#: NOT FOUND IN SOURCE -msgid "Thu" -msgstr "星期四" - -#: lib/RT/Date.pm:420 -msgid "Thu." -msgstr "星期四" - -#: NOT FOUND IN SOURCE -msgid "Ticket" -msgstr "申請單" - -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 %2" -msgstr "申請單 # %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 Jumbo update: %2" -msgstr "更新申請單 # %1 的全部資訊:%2" - -#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket #%1 Jumbo update: %2" -msgstr "更新申請單 #%1 的全部資訊:%2" - -#: html/Approvals/Elements/ShowDependency:67 -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Ticket #%1: %2" -msgstr "申請單 #%1: %2" - -#: lib/RT/Action/CreateTickets.pm:1350 lib/RT/Action/CreateTickets.pm:1359 lib/RT/Action/CreateTickets.pm:605 lib/RT/Action/CreateTickets.pm:729 lib/RT/Action/CreateTickets.pm:741 -#. ($T::Tickets{$template_id}->Id) -#. ($T::Tickets{$template_id}->id) -#. ($ticket->Id) -msgid "Ticket %1" -msgstr "申請單 %1" - -#: lib/RT/Ticket_Overlay.pm:755 lib/RT/Ticket_Overlay.pm:775 -#. ($self->Id, $QueueObj->Name) -msgid "Ticket %1 created in queue '%2'" -msgstr "申請單 #%1 成功新增於 '%2' 表單" - -#: NOT FOUND IN SOURCE -msgid "Ticket %1 loaded\\n" -msgstr "載入申請單 %1\\n" - -#: html/Search/Bulk.html:377 -#. ($Ticket->Id, $_) -msgid "Ticket %1: %2" -msgstr "申請單 %1:%2" - -#: html/Admin/Elements/QueueTabs:74 -msgid "Ticket Custom Fields" -msgstr "申請單的自訂欄位" - -#: NOT FOUND IN SOURCE -msgid "Ticket Due" -msgstr "表單處理期限" - -#: html/Ticket/History.html:46 html/Ticket/History.html:49 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket History # %1 %2" -msgstr "申請單處理紀錄 # %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Ticket ID" -msgstr "單號" - -#: NOT FOUND IN SOURCE -msgid "Ticket Id" -msgstr "申請單編號" - -#: NOT FOUND IN SOURCE -msgid "Ticket Processing Due" -msgstr "表單運行期限" - -#: etc/initialdata:324 -msgid "Ticket Resolved" -msgstr "申請單已解決" - -#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1207 -msgid "Ticket Transactions" -msgstr "申請單的更動" - -#: NOT FOUND IN SOURCE -msgid "Ticket Type" -msgstr "表單種類" - -#: NOT FOUND IN SOURCE -msgid "Ticket attachment" -msgstr "申請單附件" - -#: lib/RT/Tickets_Overlay.pm:1920 -msgid "Ticket content" -msgstr "申請單內容" - -#: lib/RT/Tickets_Overlay.pm:1969 -msgid "Ticket content type" -msgstr "申請單內容類別" - -#: lib/RT/Ticket_Overlay.pm:603 lib/RT/Ticket_Overlay.pm:617 lib/RT/Ticket_Overlay.pm:628 lib/RT/Ticket_Overlay.pm:763 -msgid "Ticket could not be created due to an internal error" -msgstr "內部錯誤,無法新增申請單" - -#: NOT FOUND IN SOURCE -msgid "Ticket created" -msgstr "申請單新增完畢" - -#: NOT FOUND IN SOURCE -msgid "Ticket creation failed" -msgstr "申請單新增失敗" - -#: NOT FOUND IN SOURCE -msgid "Ticket deleted" -msgstr "申請單刪除完畢" - -#: NOT FOUND IN SOURCE -msgid "Ticket id not found" -msgstr "找不到申請單編號" - -#: NOT FOUND IN SOURCE -msgid "Ticket killed" -msgstr "申請單刪除完畢" - -#: html/Ticket/Display.html:55 -msgid "Ticket metadata" -msgstr "申請單的描述資訊" - -#: NOT FOUND IN SOURCE -msgid "Ticket not found" -msgstr "找不到申請單" - -#: etc/initialdata:310 -msgid "Ticket status changed" -msgstr "申請單現況已改變" - -#: NOT FOUND IN SOURCE -msgid "Ticket watchers" -msgstr "申請單視察員" - -#: lib/RT/Search/FromSQL.pm:82 -#. (ref $self) -msgid "TicketSQL search module" -msgstr "" - -#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:71 html/Search/Elements/Chart:109 lib/RT/CustomField_Overlay.pm:1206 -msgid "Tickets" -msgstr "申請單" - -#: NOT FOUND IN SOURCE -msgid "Tickets %1 %2" -msgstr "申請單 %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Tickets %1 by %2" -msgstr "申請單 %1 (%2)" - -#: NOT FOUND IN SOURCE -msgid "Tickets I own" -msgstr "待處理的申請單" - -#: NOT FOUND IN SOURCE -msgid "Tickets I requested" -msgstr "送出的申請單" - -#: html/Tools/Reports/CreatedByDates.html:86 -msgid "Tickets created after" -msgstr "" - -#: html/Tools/Reports/CreatedByDates.html:88 -msgid "Tickets created before" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Tickets from %1" -msgstr "%1 的申請單" - -#: html/Tools/Reports/ResolvedByDates.html:87 -msgid "Tickets resolved after" -msgstr "" - -#: html/Tools/Reports/ResolvedByDates.html:89 -msgid "Tickets resolved before" -msgstr "" - -#: html/Approvals/Elements/ShowDependency:48 -msgid "Tickets which depend on this approval:" -msgstr "批准之後,可接續處理:" - -#: html/Search/Elements/PickBasics:134 html/Ticket/Create.html:183 html/Ticket/Elements/EditBasics:72 -msgid "Time Estimated" -msgstr "預計時間" - -#: html/Search/Elements/PickBasics:135 html/Ticket/Create.html:196 html/Ticket/Elements/EditBasics:85 -msgid "Time Left" -msgstr "剩餘時間" - -#: html/Search/Elements/PickBasics:133 html/Ticket/Create.html:189 html/Ticket/Elements/EditBasics:78 -msgid "Time Worked" -msgstr "處理時間" - -#: lib/RT/Tickets_Overlay.pm:1891 -msgid "Time left" -msgstr "剩餘時間" - -#: html/Elements/Footer:51 -msgid "Time to display" -msgstr "顯示時間" - -#: lib/RT/Tickets_Overlay.pm:1866 -msgid "Time worked" -msgstr "已處理時間" - -#: NOT FOUND IN SOURCE -msgid "TimeLeft" -msgstr "剩餘時間" - -#: lib/RT/Ticket_Overlay.pm:1167 -msgid "TimeWorked" -msgstr "已處理時間" - -#: html/Search/Elements/EditFormat:74 -msgid "Title" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:" -msgstr "產生這次更動的差異檔:" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:\\n" -msgstr "產生這次更動的差異檔:\\n" - -#: html/Elements/Footer:62 -#. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') -msgid "To inquire about support, training, custom development or licensing, please contact %1." -msgstr "如果有支援、教育訓練及定製開發的需要,請連絡 %1。" - -#: NOT FOUND IN SOURCE -msgid "Todo" -msgstr "待辦事項" - -#: lib/RT/Ticket_Overlay.pm:1170 -msgid "Told" -msgstr "告知日期" - -#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:74 html/Tools/index.html:46 html/Tools/index.html:49 -msgid "Tools" -msgstr "工具" - -#: html/Search/Elements/Chart:130 -msgid "Total" -msgstr "頁" - -#: etc/initialdata:252 -msgid "Transaction" -msgstr "更動" - -#: lib/RT/Transaction_Overlay.pm:805 -#. ($self->Data) -msgid "Transaction %1 purged" -msgstr "清除更動報告 %1" - -#: lib/RT/Transaction_Overlay.pm:183 -msgid "Transaction Created" -msgstr "更動報告已新增" - -#: html/Admin/Elements/QueueTabs:78 -msgid "Transaction Custom Fields" -msgstr "更動的自訂欄位" - -#: NOT FOUND IN SOURCE -msgid "Transaction->Create couldn't, as you didn't specify a ticket id" -msgstr "未指定申請單編號,無法新增更動" - -#: lib/RT/Transaction_Overlay.pm:128 -msgid "Transaction->Create couldn't, as you didn't specify an object type and id" -msgstr "未指定物件類別及編號,無法新增更動" - -#: NOT FOUND IN SOURCE -msgid "TransactionBatch" -msgstr "批次更動時" - -#: NOT FOUND IN SOURCE -msgid "TransactionCreate" -msgstr "新增更動時" - -#: lib/RT/Transaction_Overlay.pm:870 -msgid "Transactions are immutable" -msgstr "不可更改更動報告" - -#: NOT FOUND IN SOURCE -msgid "Transfer to" -msgstr "移交給" - -#: NOT FOUND IN SOURCE -msgid "Trying to delete a right: %1" -msgstr "試圖刪除某項權限:%1" - -#: NOT FOUND IN SOURCE -msgid "Tue" -msgstr "星期二" - -#: lib/RT/Date.pm:418 -msgid "Tue." -msgstr "星期二" - -#: html/Admin/CustomFields/Modify.html:66 html/Admin/Elements/EditCustomField:65 html/Ticket/Elements/AddWatchers:54 html/Ticket/Elements/AddWatchers:65 html/Ticket/Elements/AddWatchers:75 lib/RT/Ticket_Overlay.pm:1168 lib/RT/Tickets_Overlay.pm:1705 -msgid "Type" -msgstr "類別" - -#: lib/RT/ScripCondition_Overlay.pm:128 -msgid "Unimplemented" -msgstr "尚無實作" - -#: html/Admin/Users/Modify.html:89 -msgid "Unix login" -msgstr "外部系統登入帳號" - -#: NOT FOUND IN SOURCE -msgid "UnixUsername" -msgstr "外部系統登入帳號" - -#: lib/RT/Attachment_Overlay.pm:289 lib/RT/Record.pm:861 -#. ($self->ContentEncoding) -#. ($ContentEncoding) -msgid "Unknown ContentEncoding %1" -msgstr "不可解的內容文字編碼方式 %1" - -#: html/Search/Build.html:455 lib/RT/Report/Tickets.pm:410 -msgid "Unknown field: $key" -msgstr "" - -#: html/Elements/SelectResultsPerPage:58 -msgid "Unlimited" -msgstr "全數顯示" - -#: html/Search/Elements/SelectSearchesForObjects:64 -msgid "Unnamed search" -msgstr "未命名的查詢" - -#: etc/initialdata:32 -msgid "Unprivileged" -msgstr "非內部成員" - -#: html/Admin/Elements/EditCustomFields:60 -msgid "Unselected Custom Fields" -msgstr "未選取的自訂欄位" - -#: html/Admin/CustomFields/Objects.html:61 -msgid "Unselected objects" -msgstr "未選取的物件" - -#: lib/RT/Transaction_Overlay.pm:659 -msgid "Untaken" -msgstr "未被受理" - -#: NOT FOUND IN SOURCE -msgid "Untitled search" -msgstr "未命名的查詢" - -#: NOT FOUND IN SOURCE -msgid "Up" -msgstr "上一頁" - -#: html/Admin/Elements/EditScrip:128 html/Elements/RT__Ticket/ColumnMap:302 html/Search/Bulk.html:193 html/Search/Bulk.html:75 -msgid "Update" -msgstr "處理" - -#: NOT FOUND IN SOURCE -msgid "Update All" -msgstr "全部更新" - -#: NOT FOUND IN SOURCE -msgid "Update ID" -msgstr "更新編號" - -#: html/Ticket/Update.html:135 -msgid "Update Ticket" -msgstr "更新申請單" - -#: html/Search/Bulk.html:126 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:72 -msgid "Update Type" -msgstr "更新類別" - -#: NOT FOUND IN SOURCE -msgid "Update all these tickets at once" -msgstr "整批更新申請單" - -#: NOT FOUND IN SOURCE -msgid "Update email" -msgstr "更新電子郵件信箱" - -#: html/Search/Bulk.html:200 html/Search/Results.html:78 -msgid "Update multiple tickets" -msgstr "批次更新申請單" - -#: NOT FOUND IN SOURCE -msgid "Update name" -msgstr "更新帳號" - -#: lib/RT/Action/CreateTickets.pm:750 lib/RT/Interface/Web.pm:584 -msgid "Update not recorded." -msgstr "更新未被記錄" - -#: NOT FOUND IN SOURCE -msgid "Update selected tickets" -msgstr "更新選擇的申請單" - -#: NOT FOUND IN SOURCE -msgid "Update signature" -msgstr "更新簽章" - -#: html/Ticket/ModifyAll.html:84 -msgid "Update ticket" -msgstr "更新申請單" - -#: NOT FOUND IN SOURCE -msgid "Update ticket # %1" -msgstr "更新申請單 # %1" - -#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 -#. ($Ticket->id) -msgid "Update ticket #%1" -msgstr "更新申請單 #%1" - -#: html/Ticket/Update.html:158 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Update ticket #%1 (%2)" -msgstr "更新申請單 #%1 (%2)" - -#: lib/RT/Action/CreateTickets.pm:748 lib/RT/Interface/Web.pm:583 -msgid "Update type was neither correspondence nor comment." -msgstr "更新的內容並非申請單回覆也不是評論" - -#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/CustomField_Overlay.pm:1284 lib/RT/Ticket_Overlay.pm:1171 -msgid "Updated" -msgstr "前次更新" - -#: html/Tools/Offline.html:93 -msgid "Upload" -msgstr "上載" - -#: lib/RT/CustomField_Overlay.pm:84 -msgid "Upload multiple files" -msgstr "上載多個檔案" - -#: lib/RT/CustomField_Overlay.pm:79 -msgid "Upload multiple images" -msgstr "上載多份圖片" - -#: lib/RT/CustomField_Overlay.pm:85 -msgid "Upload one file" -msgstr "上載一個檔案" - -#: lib/RT/CustomField_Overlay.pm:80 -msgid "Upload one image" -msgstr "上載一份圖片" - -#: lib/RT/CustomField_Overlay.pm:86 -msgid "Upload up to %1 files" -msgstr "上載最多 %1 個檔案" - -#: lib/RT/CustomField_Overlay.pm:81 -msgid "Upload up to %1 images" -msgstr "上載最多 %1 份圖片" - -#: html/Tools/Offline.html:93 -msgid "Upload your changes" -msgstr "上載您的更動" - -#: html/Admin/index.html:90 -msgid "Use other RT administrative tools" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User" -msgstr "使用者" - -#: NOT FOUND IN SOURCE -msgid "User %1 %2: %3\\n" -msgstr "使用者 %1 %2:%3\\n" - -#: NOT FOUND IN SOURCE -msgid "User %1 Password: %2\\n" -msgstr "使用者 %1 密碼:%2\\n" - -#: lib/RT/Ticket_Overlay.pm:506 -#. ($args{'Owner'}) -msgid "User '%1' could not be found." -msgstr "找不到使用者 '%1'。" - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found" -msgstr "找不到使用者 '%1'" - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found\\n" -msgstr "找不到使用者 '%1'\\n" - -#: etc/initialdata:132 etc/initialdata:206 -msgid "User Defined" -msgstr "使用者自訂" - -#: html/Admin/Elements/EditScrip:93 -msgid "User Defined conditions and actions" -msgstr "使用者自訂的條件及動作" - -#: NOT FOUND IN SOURCE -msgid "User ID" -msgstr "使用者 ID" - -#: NOT FOUND IN SOURCE -msgid "User Id" -msgstr "使用者 ID" - -#: NOT FOUND IN SOURCE -msgid "User Number" -msgstr "員工編號" - -#: html/Admin/Elements/CustomFieldTabs:72 html/Admin/Elements/GroupTabs:68 html/Admin/Elements/QueueTabs:85 html/Admin/Elements/SystemTabs:68 html/Admin/Global/index.html:80 -msgid "User Rights" -msgstr "使用者權限" - -#: NOT FOUND IN SOURCE -msgid "User Setup" -msgstr "使用者設定" - -#: NOT FOUND IN SOURCE -msgid "User Shift" -msgstr "員工班別" - -#: NOT FOUND IN SOURCE -msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" -msgstr "使用者試圖在 %2 物件 #%3 的自訂欄位 %1 上執行未知的更新操作" - -#: html/Admin/Users/Modify.html:301 -#. ($msg) -msgid "User could not be created: %1" -msgstr "無法新增使用者:%1" - -#: lib/RT/User_Overlay.pm:330 -msgid "User created" -msgstr "使用者新增完畢" - -#: NOT FOUND IN SOURCE -msgid "User created: %1" -msgstr "使用者 %1 新增完畢" - -#: NOT FOUND IN SOURCE -msgid "User created: %1 (%2)" -msgstr "使用者 %1 (%2) 新增完畢" - -#: html/Admin/CustomFields/GroupRights.html:74 html/Admin/Global/GroupRights.html:88 html/Admin/Groups/GroupRights.html:75 html/Admin/Queues/GroupRights.html:90 -msgid "User defined groups" -msgstr "使用者定義的群組" - -#: lib/RT/User_Overlay.pm:592 lib/RT/User_Overlay.pm:612 -msgid "User loaded" -msgstr "已載入使用者" - -#: NOT FOUND IN SOURCE -msgid "User notified" -msgstr "已通知使用者" - -#: NOT FOUND IN SOURCE -msgid "User renamed from %1 to %2" -msgstr "使用者 %1 已改名為 %2" - -#: NOT FOUND IN SOURCE -msgid "User view" -msgstr "使用者私人資料" - -#: html/Admin/Groups/index.html:103 -msgid "User-defined groups" -msgstr "使用者自定群組" - -#: NOT FOUND IN SOURCE -msgid "UserDefined" -msgstr "使用者自定" - -#: html/Admin/Users/Modify.html:69 html/Elements/Login:90 html/Ticket/Elements/AddWatchers:56 -msgid "Username" -msgstr "帳號" - -#: html/Admin/Elements/GlobalCustomFieldTabs:55 html/Admin/Elements/SelectNewGroupMembers:47 html/Admin/Elements/Tabs:53 html/Admin/Global/CustomFields/index.html:64 html/Admin/Groups/Members.html:76 html/Admin/Queues/People.html:89 html/Admin/index.html:62 html/User/Groups/Members.html:79 lib/RT/CustomField_Overlay.pm:1208 -msgid "Users" -msgstr "使用者" - -#: html/Admin/Users/index.html:85 -msgid "Users matching search criteria" -msgstr "符合查詢條件的使用者" - -#: bin/rt-crontool:134 -#. ($transaction->id) -msgid "Using transaction #%1..." -msgstr "使用更動 #%1..." - -#: lib/RT/Tickets_Overlay_SQL.pm:528 -msgid "Valid Query" -msgstr "合理的查詢" - -#: html/Admin/CustomFields/Modify.html:80 -msgid "Validation" -msgstr "驗證" - -#: NOT FOUND IN SOURCE -msgid "ValueOfQueue" -msgstr "選擇表單" - -#: html/Admin/CustomFields/Modify.html:130 html/Admin/Elements/EditCustomField:78 -msgid "Values" -msgstr "欄位值" - -#: NOT FOUND IN SOURCE -msgid "View log" -msgstr "檢視紀錄檔" - -#: lib/RT/Queue_Overlay.pm:107 -msgid "Watch" -msgstr "視察" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "WatchAsAdminCc" -msgstr "以管理員副本收件人身份視察" - -#: NOT FOUND IN SOURCE -msgid "Watcher loaded" -msgstr "成功載入視察員資訊" - -#: html/Admin/Elements/QueueTabs:63 -msgid "Watchers" -msgstr "視察員" - -#: NOT FOUND IN SOURCE -msgid "WebEncoding" -msgstr "網頁文字編碼方式" - -#: NOT FOUND IN SOURCE -msgid "Wed" -msgstr "星期三" - -#: lib/RT/Date.pm:419 -msgid "Wed." -msgstr "星期三" - -#: html/Tools/MyDay.html:75 -msgid "What I did today" -msgstr "" - -#: etc/initialdata:521 -msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" -msgstr "當申請單通過所有簽核後,將此訊息回覆到原申請單" - -#: etc/initialdata:485 -msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" -msgstr "當申請單通過某項簽核後,將此訊息回覆到原申請單" - -#: etc/initialdata:146 -msgid "When a ticket is created" -msgstr "新增申請單時" - -#: etc/initialdata:418 -msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" -msgstr "簽核單新增之後,通知應受理的承辦人及管理員副本收件人" - -#: etc/initialdata:151 -msgid "When anything happens" -msgstr "當任何事情發生時" - -#: etc/initialdata:199 -msgid "Whenever a ticket is resolved" -msgstr "當申請單解決時" - -#: etc/initialdata:185 -msgid "Whenever a ticket's owner changes" -msgstr "當申請單更換承辦人時" - -#: etc/initialdata:178 etc/upgrade/3.1.17/content:16 -msgid "Whenever a ticket's priority changes" -msgstr "當申請單的優先順序改變時" - -#: etc/initialdata:193 -msgid "Whenever a ticket's queue changes" -msgstr "當申請單更換表單時" - -#: etc/initialdata:170 -msgid "Whenever a ticket's status changes" -msgstr "當申請單更新現況時" - -#: etc/initialdata:207 -msgid "Whenever a user-defined condition occurs" -msgstr "當使用者自訂的情況發生時" - -#: etc/initialdata:164 -msgid "Whenever comments come in" -msgstr "當評論送達時" - -#: etc/initialdata:157 -msgid "Whenever correspondence comes in" -msgstr "當回覆送達時" - -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:88 -msgid "Work" -msgstr "公司" - -#: html/Search/Results.html:82 -msgid "Work offline" -msgstr "離線工作" - -#: NOT FOUND IN SOURCE -msgid "WorkPhone" -msgstr "公司電話" - -#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 -msgid "Worked" -msgstr "處理時間" - -#: NOT FOUND IN SOURCE -msgid "Workflow #%1" -msgstr "流程 #%1" - -#: NOT FOUND IN SOURCE -msgid "Workflow Begin" -msgstr "流程開始" - -#: NOT FOUND IN SOURCE -msgid "Workflow End" -msgstr "流程結束" - -#: NOT FOUND IN SOURCE -msgid "Workflow deleted" -msgstr "流程已刪除" - -#: NOT FOUND IN SOURCE -msgid "Workflows" -msgstr "流程" - -#: NOT FOUND IN SOURCE -msgid "Writable" -msgstr "可讀寫" - -#: NOT FOUND IN SOURCE -msgid "XXX CHANGEME You are not an authorized user" -msgstr "XXX CHANGEME 您是未經授權的使用者" - -#: NOT FOUND IN SOURCE -msgid "Yes" -msgstr "是" - -#: lib/RT/Ticket_Overlay.pm:3140 -msgid "You already own this ticket" -msgstr "您已是這份申請單的承辦人" - -#: html/autohandler:214 html/autohandler:222 -msgid "You are not an authorized user" -msgstr "您不是被授權的使用者" - -#: NOT FOUND IN SOURCE -msgid "You can access it with the Download button on the right." -msgstr "您可以按右方的「下載」鍵來取得。" - -#: html/Prefs/Search.html:56 -msgid "You can also edit the predefined search itself" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3025 -msgid "You can only reassign tickets that you own or that are unowned" -msgstr "祇能重新指派您所承辦或是沒有承辦人的申請單" - -#: lib/RT/Ticket_Overlay.pm:3021 -msgid "You can only take tickets that are unowned" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "You don't have permission to view that ticket.\\n" -msgstr "您沒有看那份申請單的權限。\\n" - -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 -#. ($num, $queue) -msgid "You found %1 tickets in queue %2" -msgstr "您會在表單 %2 找到 %1 的申請單" - -#: html/NoAuth/Logout.html:52 -msgid "You have been logged out of RT." -msgstr "您已登出 RT。" - -#: html/SelfService/Display.html:133 -msgid "You have no permission to create tickets in that queue." -msgstr "您沒有在該表單新增申請單的權限。" - -#: lib/RT/Ticket_Overlay.pm:2003 -msgid "You may not create requests in that queue." -msgstr "您不能在該表單中提出申請。" - -#: NOT FOUND IN SOURCE -msgid "You need to restart the Request Tracker service for saved changes to take effect." -msgstr "您必須重新啟動 Request Tracker 服務,儲存的更動纔會生效。" - -#: html/NoAuth/Logout.html:56 -msgid "You're welcome to login again" -msgstr "歡迎下次再來" - -#: NOT FOUND IN SOURCE -msgid "Your %1 requests" -msgstr "您提出的 %1 申請單" - -#: NOT FOUND IN SOURCE -msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" -msgstr "RT 管理員可能設錯了由 RT 寄出的郵件收件人標頭檔" - -#: etc/initialdata:502 -msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "申請單已由 %1 批准。可能還有其他待簽核的步驟。" - -#: etc/initialdata:540 -msgid "Your request has been approved." -msgstr "您的申請單已完成簽核程序。" - -#: NOT FOUND IN SOURCE -msgid "Your request was rejected" -msgstr "您的申請單已被駁回" - -#: NOT FOUND IN SOURCE -msgid "Your request was rejected by %1." -msgstr "您的申請單已被 %1 駁回。" - -#: etc/initialdata:445 -msgid "Your request was rejected." -msgstr "您的申請單已被駁回。" - -#: html/autohandler:251 -msgid "Your username or password is incorrect" -msgstr "您的帳號或密碼有誤" - -#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 -msgid "Zip" -msgstr "郵遞區號" - -#: NOT FOUND IN SOURCE -msgid "[no subject]" -msgstr "[沒有標題]" - -#: NOT FOUND IN SOURCE -msgid "ago" -msgstr "過期" - -#: NOT FOUND IN SOURCE -msgid "alert" -msgstr "急訊" - -#: lib/RT/System.pm:87 -msgid "allow creation of saved searches" -msgstr "允許建立預存查詢" - -#: lib/RT/System.pm:86 -msgid "allow loading of saved searches" -msgstr "允許載入預存查詢" - -#: NOT FOUND IN SOURCE -msgid "approving" -msgstr "待簽核" - -#: html/User/Elements/DelegateRights:80 -#. ($right->PrincipalObj->Object->SelfDescription) -msgid "as granted to %1" -msgstr "權限同 %1" - -#: html/Search/Results.html:83 -msgid "chart" -msgstr "" - -#: html/SelfService/Closed.html:49 -msgid "closed" -msgstr "已解決" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 -msgid "contains" -msgstr "包含" - -#: NOT FOUND IN SOURCE -msgid "content" -msgstr "內容" - -#: NOT FOUND IN SOURCE -msgid "content-type" -msgstr "類型" - -#: NOT FOUND IN SOURCE -msgid "correspondence (probably) not sent" -msgstr "申請單回覆(可能)未送出" - -#: NOT FOUND IN SOURCE -msgid "correspondence sent" -msgstr "申請單回覆已送出" - -#: NOT FOUND IN SOURCE -msgid "critical" -msgstr "嚴重" - -#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:346 -msgid "days" -msgstr "天" - -#: NOT FOUND IN SOURCE -msgid "dead" -msgstr "拒絕處理" - -#: NOT FOUND IN SOURCE -msgid "debug" -msgstr "偵錯" - -#: NOT FOUND IN SOURCE -msgid "delete" -msgstr "刪除" - -#: lib/RT/Queue_Overlay.pm:87 -msgid "deleted" -msgstr "已刪除" - -#: html/Search/Elements/PickBasics:61 -msgid "does not match" -msgstr "不符合" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 -msgid "doesn't contain" -msgstr "不包含" - -#: NOT FOUND IN SOURCE -msgid "email address" -msgstr "電子郵件信箱" - -#: NOT FOUND IN SOURCE -msgid "emergency" -msgstr "危難" - -#: html/Elements/SelectEqualityOperator:59 -msgid "equal to" -msgstr "等於" - -#: NOT FOUND IN SOURCE -msgid "error" -msgstr "錯誤" - -#: html/Search/Build.html:547 -msgid "error: can't move down" -msgstr "錯誤:無法下移" - -#: html/Search/Build.html:569 -msgid "error: can't move left" -msgstr "錯誤:無法左移" - -#: html/Search/Build.html:528 -msgid "error: can't move up" -msgstr "錯誤:無法上移" - -#: html/Search/Build.html:612 -msgid "error: nothing to delete" -msgstr "錯誤:沒有可刪除的對象" - -#: html/Search/Build.html:533 html/Search/Build.html:552 html/Search/Build.html:574 html/Search/Build.html:603 -msgid "error: nothing to move" -msgstr "錯誤:沒有可移動的對象" - -#: html/Search/Build.html:630 -msgid "error: nothing to toggle" -msgstr "錯誤:沒有可切換的對象" - -#: NOT FOUND IN SOURCE -msgid "false" -msgstr "假" - -#: NOT FOUND IN SOURCE -msgid "filename" -msgstr "檔名" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 -msgid "greater than" -msgstr "大於" - -#: lib/RT/Group_Overlay.pm:214 -#. ($self->Name) -msgid "group '%1'" -msgstr "群組 '%1'" - -#: html/Search/Results.html:88 -#. ($m->scomp('Elements/SelectGroupBy', Name => 'PrimaryGroupBy', Query => $Query)) -msgid "grouped by %1" -msgstr "依 %1 分組" - -#: lib/RT/Date.pm:342 -msgid "hours" -msgstr "小時" - -#: html/Search/Elements/PickBasics:48 -msgid "id" -msgstr "編號" - -#: NOT FOUND IN SOURCE -msgid "info" -msgstr "資訊" - -#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:162 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 -msgid "is" -msgstr "是" - -#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:163 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 -msgid "isn't" -msgstr "不是" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 -msgid "less than" -msgstr "小於" - -#: NOT FOUND IN SOURCE -msgid "level Admin" -msgstr "層主管" - -#: html/Search/Elements/PickBasics:60 -msgid "matches" -msgstr "符合" - -#: lib/RT/Date.pm:338 -msgid "min" -msgstr "分" - -#: NOT FOUND IN SOURCE -msgid "minutes" -msgstr "分鐘" - -#: NOT FOUND IN SOURCE -msgid "modifications\\n\\n" -msgstr "更改\\n\\n" - -#: lib/RT/Date.pm:354 -msgid "months" -msgstr "月" - -#: lib/RT/Queue_Overlay.pm:82 -msgid "new" -msgstr "新建立" - -#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:65 -msgid "no name" -msgstr "沒有名稱" - -#: html/Admin/Elements/EditScrips:64 -msgid "no value" -msgstr "沒有值" - -#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 -msgid "none" -msgstr "無" - -#: html/Elements/SelectEqualityOperator:59 -msgid "not equal to" -msgstr "不等於" - -#: NOT FOUND IN SOURCE -msgid "notice" -msgstr "提示" - -#: NOT FOUND IN SOURCE -msgid "notlike" -msgstr "不符合" - -#: NOT FOUND IN SOURCE -msgid "number" -msgstr "號" - -#: html/SelfService/Elements/MyRequests:82 lib/RT/Queue_Overlay.pm:83 -msgid "open" -msgstr "開啟" - -#: NOT FOUND IN SOURCE -msgid "opened" -msgstr "已開啟" - -#: lib/RT/Group_Overlay.pm:219 -#. ($self->Name, $user->Name) -msgid "personal group '%1' for user '%2'" -msgstr "使用者「%2」的「%1」代理人群組" - -#: lib/RT/Group_Overlay.pm:227 -#. ($queue->Name, $self->Type) -msgid "queue %1 %2" -msgstr "表單 %1 %2" - -#: lib/RT/Queue_Overlay.pm:86 -msgid "rejected" -msgstr "已駁回" - -#: lib/RT/Queue_Overlay.pm:85 -msgid "resolved" -msgstr "已處理" - -#: NOT FOUND IN SOURCE -msgid "rtname" -msgstr "伺服器名稱" - -#: lib/RT/Date.pm:334 -msgid "sec" -msgstr "秒" - -#: lib/RT/System.pm:85 -msgid "show Configuration tab" -msgstr "顯示設定頁籤" - -#: html/Search/Results.html:80 -msgid "spreadsheet" -msgstr "試算表" - -#: lib/RT/Queue_Overlay.pm:84 -msgid "stalled" -msgstr "延宕" - -#: html/Search/Results.html:89 -#. ($m->scomp('Elements/SelectChartType', Name => 'ChartStyle')) -msgid "style: %1" -msgstr "" - -#: html/Prefs/MyRT.html:93 -msgid "summary rows" -msgstr "加總列" - -#: lib/RT/Group_Overlay.pm:222 -#. ($self->Type) -msgid "system %1" -msgstr "系統 %1" - -#: lib/RT/Group_Overlay.pm:233 -#. ($self->Type) -msgid "system group '%1'" -msgstr "系統群組 '%1'" - -#: html/Elements/Error:64 html/SelfService/Error.html:63 -msgid "the calling component did not specify why" -msgstr "呼叫元件未指明原因" - -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "申請單 #%1" - -#: lib/RT/Group_Overlay.pm:230 -#. ($self->Instance, $self->Type) -msgid "ticket #%1 %2" -msgstr "申請單 #%1 %2" - -#: NOT FOUND IN SOURCE -msgid "till" -msgstr "至" - -#: NOT FOUND IN SOURCE -msgid "to" -msgstr "到" - -#: NOT FOUND IN SOURCE -msgid "true" -msgstr "真" - -#: lib/RT/Group_Overlay.pm:236 -#. ($self->Id) -msgid "undescribed group %1" -msgstr "沒有描述的群組 %1" - -#: NOT FOUND IN SOURCE -msgid "unresolved" -msgstr "未處理" - -#: lib/RT/Group_Overlay.pm:211 -#. ($user->Object->Name) -msgid "user %1" -msgstr "使用者 %1" - -#: NOT FOUND IN SOURCE -msgid "warning" -msgstr "警告" - -#: lib/RT/Date.pm:350 -msgid "weeks" -msgstr "週" - -#: NOT FOUND IN SOURCE -msgid "with template %1" -msgstr "範本:%1" - -#: lib/RT/Date.pm:358 -msgid "years" -msgstr "年" - -msgid "Press 'Esc' to close this window." -msgstr "按 'Esc' 鍵可關閉本視窗。" - -msgid "HasMember" -msgstr "擁有成員" - -msgid "LinkedTo" -msgstr "連結至" - -msgid "Watcher" -msgstr "視察員" - -msgid "(displaying new and open tickets for %1)" -msgstr "(顯示 %1 名下新建立及開啟中的申請單)" diff --git a/rt/lib/RT/Interface/CLI.pm b/rt/lib/RT/Interface/CLI.pm index 00bd1b64e..ec0e877b4 100644 --- a/rt/lib/RT/Interface/CLI.pm +++ b/rt/lib/RT/Interface/CLI.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK use strict; use RT; @@ -54,12 +29,14 @@ package RT::Interface::CLI; BEGIN { - use base 'Exporter'; - use vars qw ($VERSION @EXPORT @EXPORT_OK %EXPORT_TAGS); + use Exporter (); + use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); # set the version for version checking - $VERSION = do { my @r = (q$Revision: 1.1.1.9 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker - + $VERSION = do { my @r = (q$Revision: 1.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker + + @ISA = qw(Exporter); + # your exported package globals go here, # as well as any optionally exported functions @EXPORT_OK = qw(&CleanEnv @@ -99,6 +76,11 @@ BEGIN { =head1 METHODS +=begin testing + +ok(require RT::Interface::CLI); + +=end testing =cut @@ -220,7 +202,7 @@ sub GetMessageContent { if ($edit) { unless ($ENV{'EDITOR'}) { - $RT::Logger->crit('No $EDITOR variable defined'); + $RT::Logger->crit('No $EDITOR variable defined'. "\n"); return undef; } system ($ENV{'EDITOR'}, $filename); @@ -243,7 +225,7 @@ sub debug { my $val = shift; my ($debug); if ($val) { - $RT::Logger->debug($val); + $RT::Logger->debug($val."\n"); if ($debug) { print STDERR "$val\n"; } diff --git a/rt/lib/RT/Interface/Email.pm b/rt/lib/RT/Interface/Email.pm index cda61305b..7eec0502f 100755 --- a/rt/lib/RT/Interface/Email.pm +++ b/rt/lib/RT/Interface/Email.pm @@ -1,91 +1,63 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK package RT::Interface::Email; use strict; -use warnings; - -use Email::Address; +use Mail::Address; use MIME::Entity; use RT::EmailParser; -use File::Temp; -use UNIVERSAL::require; -use Mail::Mailer (); -BEGIN { - use base 'Exporter'; - use vars qw ( @EXPORT_OK); +BEGIN { + use Exporter (); + use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); + # set the version for version checking - our $VERSION = 2.0; - + $VERSION = do { my @r = (q$Revision: 1.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker + + @ISA = qw(Exporter); + # your exported package globals go here, # as well as any optionally exported functions - @EXPORT_OK = qw( - &CreateUser - &GetMessageContent - &CheckForLoops - &CheckForSuspiciousSender - &CheckForAutoGenerated - &CheckForBounce - &MailError - &ParseCcAddressesFromHead - &ParseSenderAddressFromHead - &ParseErrorsToAddressFromHead - &ParseAddressFromHeader - &Gateway); + @EXPORT_OK = qw( + &CreateUser + &GetMessageContent + &CheckForLoops + &CheckForSuspiciousSender + &CheckForAutoGenerated + &MailError + &ParseCcAddressesFromHead + &ParseSenderAddressFromHead + &ParseErrorsToAddressFromHead + &ParseAddressFromHeader + &Gateway); } =head1 NAME - RT::Interface::Email - helper functions for parsing email sent to RT + RT::Interface::CLI - helper functions for creating a commandline RT interface =head1 SYNOPSIS @@ -97,1627 +69,425 @@ BEGIN { =head1 DESCRIPTION +=begin testing +ok(require RT::Interface::Email); -=head1 METHODS +=end testing -=head2 CheckForLoops HEAD -Takes a HEAD object of L<MIME::Head> class and returns true if the -message's been sent by this RT instance. Uses "X-RT-Loop-Prevention" -field of the head for test. +=head1 METHODS =cut -sub CheckForLoops { - my $head = shift; - # If this instance of RT sent it our, we don't want to take it in +# {{{ sub CheckForLoops + +sub CheckForLoops { + my $head = shift; + + #If this instance of RT sent it our, we don't want to take it in my $RTLoop = $head->get("X-RT-Loop-Prevention") || ""; - chomp ($RTLoop); # remove that newline - if ( $RTLoop eq RT->Config->Get('rtname') ) { - return 1; + chomp ($RTLoop); #remove that newline + if ($RTLoop eq "$RT::rtname") { + return (1); } - + # TODO: We might not trap the case where RT instance A sends a mail # to RT instance B which sends a mail to ... - return undef; + return (undef); } -=head2 CheckForSuspiciousSender HEAD - -Takes a HEAD object of L<MIME::Head> class and returns true if sender -is suspicious. Suspicious means mailer daemon. +# }}} -See also L</ParseSenderAddressFromHead>. - -=cut +# {{{ sub CheckForSuspiciousSender sub CheckForSuspiciousSender { my $head = shift; #if it's from a postmaster or mailer daemon, it's likely a bounce. - + #TODO: better algorithms needed here - there is no standards for #bounces, so it's very difficult to separate them from anything #else. At the other hand, the Return-To address is only ment to be #used as an error channel, we might want to put up a separate #Return-To address which is treated differently. - + #TODO: search through the whole email and find the right Ticket ID. - my ( $From, $junk ) = ParseSenderAddressFromHead($head); - - if ( ( $From =~ /^mailer-daemon\@/i ) - or ( $From =~ /^postmaster\@/i ) - or ( $From eq "" )) - { - return (1); - + my ($From, $junk) = ParseSenderAddressFromHead($head); + + if (($From =~ /^mailer-daemon/i) or + ($From =~ /^postmaster/i)){ + return (1); + } + + return (undef); - return undef; } -=head2 CheckForAutoGenerated HEAD - -Takes a HEAD object of L<MIME::Head> class and returns true if message -is autogenerated. Checks 'Precedence' and 'X-FC-Machinegenerated' -fields of the head in tests. - -=cut +# }}} +# {{{ sub CheckForAutoGenerated sub CheckForAutoGenerated { my $head = shift; - - my $Precedence = $head->get("Precedence") || ""; - if ( $Precedence =~ /^(bulk|junk)/i ) { - return (1); - } - - # Per RFC3834, any Auto-Submitted header which is not "no" means - # it is auto-generated. - my $AutoSubmitted = $head->get("Auto-Submitted") || ""; - if ( length $AutoSubmitted and $AutoSubmitted ne "no" ) { - return (1); + + my $Precedence = $head->get("Precedence") || "" ; + if ($Precedence =~ /^(bulk|junk)/i) { + return (1); } - - # First Class mailer uses this as a clue. - my $FCJunk = $head->get("X-FC-Machinegenerated") || ""; - if ( $FCJunk =~ /^true/i ) { - return (1); + else { + return (0); } - - return (0); } +# }}} -sub CheckForBounce { - my $head = shift; - - my $ReturnPath = $head->get("Return-path") || ""; - return ( $ReturnPath =~ /<>/ ); -} - - -=head2 MailError PARAM HASH - -Sends an error message. Takes a param hash: - -=over 4 - -=item From - sender's address, by default is 'CorrespondAddress'; - -=item To - recipient, by default is 'OwnerEmail'; - -=item Bcc - optional Bcc recipients; - -=item Subject - subject of the message, default is 'There has been an error'; - -=item Explanation - main content of the error, default value is 'Unexplained error'; - -=item MIMEObj - optional MIME entity that's attached to the error mail, as well we -add 'In-Reply-To' field to the error that points to this message. - -=item Attach - optional text that attached to the error as 'message/rfc822' part. - -=item LogLevel - log level under which we should write explanation message into the -log, by default we log it as critical. - -=back - -=cut +# {{{ sub MailError sub MailError { - my %args = ( - To => RT->Config->Get('OwnerEmail'), - Bcc => undef, - From => RT->Config->Get('CorrespondAddress'), - Subject => 'There has been an error', - Explanation => 'Unexplained error', - MIMEObj => undef, - Attach => undef, - LogLevel => 'crit', - @_ - ); - - $RT::Logger->log( - level => $args{'LogLevel'}, - message => $args{'Explanation'} - ) if $args{'LogLevel'}; - - # the colons are necessary to make ->build include non-standard headers - my %entity_args = ( - Type => "multipart/mixed", - From => $args{'From'}, - Bcc => $args{'Bcc'}, - To => $args{'To'}, - Subject => $args{'Subject'}, - 'X-RT-Loop-Prevention:' => RT->Config->Get('rtname'), - ); - - # only set precedence if the sysadmin wants us to - if (defined(RT->Config->Get('DefaultErrorMailPrecedence'))) { - $entity_args{'Precedence:'} = RT->Config->Get('DefaultErrorMailPrecedence'); - } - - my $entity = MIME::Entity->build(%entity_args); - SetInReplyTo( Message => $entity, InReplyTo => $args{'MIMEObj'} ); - - $entity->attach( Data => $args{'Explanation'} . "\n" ); - - if ( $args{'MIMEObj'} ) { - $args{'MIMEObj'}->sync_headers; - $entity->add_part( $args{'MIMEObj'} ); - } - - if ( $args{'Attach'} ) { - $entity->attach( Data => $args{'Attach'}, Type => 'message/rfc822' ); - - } - - SendEmail( Entity => $entity, Bounce => 1 ); -} - - -=head2 SendEmail Entity => undef, [ Bounce => 0, Ticket => undef, Transaction => undef ] - -Sends an email (passed as a L<MIME::Entity> object C<ENTITY>) using -RT's outgoing mail configuration. If C<BOUNCE> is passed, and is a -true value, the message will be marked as an autogenerated error, if -possible. Sets Date field of the head to now if it's not set. - -If the C<X-RT-Squelch> header is set to any true value, the mail will -not be sent. One use is to let extensions easily cancel outgoing mail. - -Ticket and Transaction arguments are optional. If Transaction is -specified and Ticket is not then ticket of the transaction is -used, but only if the transaction belongs to a ticket. - -Returns 1 on success, 0 on error or -1 if message has no recipients -and hasn't been sent. - -=head3 Signing and Encrypting - -This function as well signs and/or encrypts the message according to -headers of a transaction's attachment or properties of a ticket's queue. -To get full access to the configuration Ticket and/or Transaction -arguments must be provided, but you can force behaviour using Sign -and/or Encrypt arguments. - -The following precedence of arguments are used to figure out if -the message should be encrypted and/or signed: - -* if Sign or Encrypt argument is defined then its value is used - -* else if Transaction's first attachment has X-RT-Sign or X-RT-Encrypt -header field then it's value is used - -* else properties of a queue of the Ticket are used. - -=cut - -sub SendEmail { - my (%args) = ( - Entity => undef, - Bounce => 0, - Ticket => undef, - Transaction => undef, - @_, - ); - - my $TicketObj = $args{'Ticket'}; - my $TransactionObj = $args{'Transaction'}; - - foreach my $arg( qw(Entity Bounce) ) { - next unless defined $args{ lc $arg }; - - $RT::Logger->warning("'". lc($arg) ."' argument is deprecated, use '$arg' instead"); - $args{ $arg } = delete $args{ lc $arg }; - } - - unless ( $args{'Entity'} ) { - $RT::Logger->crit( "Could not send mail without 'Entity' object" ); - return 0; - } - - my $msgid = $args{'Entity'}->head->get('Message-ID') || ''; - chomp $msgid; + my %args = (To => $RT::OwnerEmail, + Bcc => undef, + From => $RT::CorrespondAddress, + Subject => 'There has been an error', + Explanation => 'Unexplained error', + MIMEObj => undef, + LogLevel => 'crit', + @_); + + + $RT::Logger->log(level => $args{'LogLevel'}, + message => $args{'Explanation'} + ); + my $entity = MIME::Entity->build( Type =>"multipart/mixed", + From => $args{'From'}, + Bcc => $args{'Bcc'}, + To => $args{'To'}, + Subject => $args{'Subject'}, + 'X-RT-Loop-Prevention' => $RT::rtname, + ); + + $entity->attach( Data => $args{'Explanation'}."\n"); - # If we don't have any recipients to send to, don't send a message; - unless ( $args{'Entity'}->head->get('To') - || $args{'Entity'}->head->get('Cc') - || $args{'Entity'}->head->get('Bcc') ) - { - $RT::Logger->info( $msgid . " No recipients found. Not sending." ); - return -1; + my $mimeobj = $args{'MIMEObj'}; + if ($mimeobj) { + $mimeobj->sync_headers(); + $entity->add_part($mimeobj); } - - if ($args{'Entity'}->head->get('X-RT-Squelch')) { - $RT::Logger->info( $msgid . " Squelch header found. Not sending." ); - return -1; - } - - if ( $TransactionObj && !$TicketObj - && $TransactionObj->ObjectType eq 'RT::Ticket' ) - { - $TicketObj = $TransactionObj->Object; - } - - if ( RT->Config->Get('GnuPG')->{'Enable'} ) { - my %crypt; - - my $attachment; - $attachment = $TransactionObj->Attachments->First - if $TransactionObj; - - foreach my $argument ( qw(Sign Encrypt) ) { - next if defined $args{ $argument }; - - if ( $attachment && defined $attachment->GetHeader("X-RT-$argument") ) { - $crypt{$argument} = $attachment->GetHeader("X-RT-$argument"); - } elsif ( $TicketObj ) { - $crypt{$argument} = $TicketObj->QueueObj->$argument(); - } - } - - my $res = SignEncrypt( %args, %crypt ); - return $res unless $res > 0; - } - - unless ( $args{'Entity'}->head->get('Date') ) { - require RT::Date; - my $date = RT::Date->new( $RT::SystemUser ); - $date->SetToNow; - $args{'Entity'}->head->set( 'Date', $date->RFC2822( Timezone => 'server' ) ); - } - - my $mail_command = RT->Config->Get('MailCommand'); - - if ($mail_command eq 'testfile' and not $Mail::Mailer::testfile::config{outfile}) { - $Mail::Mailer::testfile::config{outfile} = File::Temp->new; - $RT::Logger->info("Storing outgoing emails in $Mail::Mailer::testfile::config{outfile}"); - } - - # if it is a sub routine, we just return it; - return $mail_command->($args{'Entity'}) if UNIVERSAL::isa( $mail_command, 'CODE' ); - - if ( $mail_command eq 'sendmailpipe' ) { - my $path = RT->Config->Get('SendmailPath'); - my $args = RT->Config->Get('SendmailArguments'); - - # SetOutgoingMailFrom - if ( RT->Config->Get('SetOutgoingMailFrom') ) { - my $OutgoingMailAddress; - - if ($TicketObj) { - my $QueueName = $TicketObj->QueueObj->Name; - my $QueueAddressOverride = RT->Config->Get('OverrideOutgoingMailFrom')->{$QueueName}; - - if ($QueueAddressOverride) { - $OutgoingMailAddress = $QueueAddressOverride; - } else { - $OutgoingMailAddress = $TicketObj->QueueObj->CorrespondAddress; - } - } - - $OutgoingMailAddress ||= RT->Config->Get('OverrideOutgoingMailFrom')->{'Default'}; - - $args .= " -f $OutgoingMailAddress" - if $OutgoingMailAddress; - } - - # Set Bounce Arguments - $args .= ' '. RT->Config->Get('SendmailBounceArguments') if $args{'Bounce'}; - - # VERP - if ( $TransactionObj and - my $prefix = RT->Config->Get('VERPPrefix') and - my $domain = RT->Config->Get('VERPDomain') ) - { - my $from = $TransactionObj->CreatorObj->EmailAddress; - $from =~ s/@/=/g; - $from =~ s/\s//g; - $args .= " -f $prefix$from\@$domain"; - } - - eval { - # don't ignore CHLD signal to get proper exit code - local $SIG{'CHLD'} = 'DEFAULT'; - - open my $mail, "|$path $args >/dev/null" - or die "couldn't execute program: $!"; - - # if something wrong with $mail->print we will get PIPE signal, handle it - local $SIG{'PIPE'} = sub { die "program unexpectedly closed pipe" }; - $args{'Entity'}->print($mail); - - unless ( close $mail ) { - die "close pipe failed: $!" if $!; # system error - # sendmail exit statuses mostly errors with data not software - # TODO: status parsing: core dump, exit on signal or EX_* - my $msg = "$msgid: `$path $args` exitted with code ". ($?>>8); - $msg = ", interrupted by signal ". ($?&127) if $?&127; - $RT::Logger->error( $msg ); - die $msg; - } - }; - if ( $@ ) { - $RT::Logger->crit( "$msgid: Could not send mail with command `$path $args`: " . $@ ); - if ( $TicketObj ) { - _RecordSendEmailFailure( $TicketObj ); - } - return 0; - } - } - elsif ( $mail_command eq 'smtp' ) { - require Net::SMTP; - my $smtp = do { local $@; eval { Net::SMTP->new( - Host => RT->Config->Get('SMTPServer'), - Debug => RT->Config->Get('SMTPDebug'), - ) } }; - unless ( $smtp ) { - $RT::Logger->crit( "Could not connect to SMTP server."); - if ($TicketObj) { - _RecordSendEmailFailure( $TicketObj ); - } - return 0; - } - - # duplicate head as we want drop Bcc field - my $head = $args{'Entity'}->head->dup; - my @recipients = map $_->address, map - Email::Address->parse($head->get($_)), qw(To Cc Bcc); - $head->delete('Bcc'); - - my $sender = RT->Config->Get('SMTPFrom') - || $args{'Entity'}->head->get('From'); - chomp $sender; - - my $status = $smtp->mail( $sender ) - && $smtp->recipient( @recipients ); - - if ( $status ) { - $smtp->data; - my $fh = $smtp->tied_fh; - $head->print( $fh ); - print $fh "\n"; - $args{'Entity'}->print_body( $fh ); - $smtp->dataend; - } - $smtp->quit; - - unless ( $status ) { - $RT::Logger->crit( "$msgid: Could not send mail via SMTP." ); - if ( $TicketObj ) { - _RecordSendEmailFailure( $TicketObj ); - } - return 0; - } + + if ($RT::MailCommand eq 'sendmailpipe') { + open (MAIL, "|$RT::SendmailPath $RT::SendmailArguments") || return(0); + print MAIL $entity->as_string; + close(MAIL); } else { - local ($ENV{'MAILADDRESS'}, $ENV{'PERL_MAILERS'}); - - my @mailer_args = ($mail_command); - if ( $mail_command eq 'sendmail' ) { - $ENV{'PERL_MAILERS'} = RT->Config->Get('SendmailPath'); - push @mailer_args, split(/\s+/, RT->Config->Get('SendmailArguments')); - } - else { - push @mailer_args, RT->Config->Get('MailParams'); - } - - unless ( $args{'Entity'}->send( @mailer_args ) ) { - $RT::Logger->crit( "$msgid: Could not send mail." ); - if ( $TicketObj ) { - _RecordSendEmailFailure( $TicketObj ); - } - return 0; - } - } - return 1; -} - -=head2 PrepareEmailUsingTemplate Template => '', Arguments => {} - -Loads a template. Parses it using arguments if it's not empty. -Returns a tuple (L<RT::Template> object, error message). - -Note that even if a template object is returned MIMEObj method -may return undef for empty templates. - -=cut - -sub PrepareEmailUsingTemplate { - my %args = ( - Template => '', - Arguments => {}, - @_ - ); - - my $template = RT::Template->new( $RT::SystemUser ); - $template->LoadGlobalTemplate( $args{'Template'} ); - unless ( $template->id ) { - return (undef, "Couldn't load template '". $args{'Template'} ."'"); - } - return $template if $template->IsEmpty; - - my ($status, $msg) = $template->Parse( %{ $args{'Arguments'} } ); - return (undef, $msg) unless $status; - - return $template; -} - -=head2 SendEmailUsingTemplate Template => '', Arguments => {}, From => CorrespondAddress, To => '', Cc => '', Bcc => '' - -Sends email using a template, takes name of template, arguments for it and recipients. - -=cut - -sub SendEmailUsingTemplate { - my %args = ( - Template => '', - Arguments => {}, - To => undef, - Cc => undef, - Bcc => undef, - From => RT->Config->Get('CorrespondAddress'), - InReplyTo => undef, - @_ - ); - - my ($template, $msg) = PrepareEmailUsingTemplate( %args ); - return (0, $msg) unless $template; - - my $mail = $template->MIMEObj; - unless ( $mail ) { - $RT::Logger->info("Message is not sent as template #". $template->id ." is empty"); - return -1; - } - - $mail->head->set( $_ => Encode::encode_utf8( $args{ $_ } ) ) - foreach grep defined $args{$_}, qw(To Cc Bcc From); - - SetInReplyTo( Message => $mail, InReplyTo => $args{'InReplyTo'} ); - - return SendEmail( Entity => $mail ); -} - -=head2 ForwardTransaction TRANSACTION, To => '', Cc => '', Bcc => '' - -Forwards transaction with all attachments as 'message/rfc822'. - -=cut - -sub ForwardTransaction { - my $txn = shift; - my %args = ( To => '', Cc => '', Bcc => '', @_ ); - - my $entity = $txn->ContentAsMIME; - - return SendForward( %args, Entity => $entity, Transaction => $txn ); -} - -=head2 ForwardTicket TICKET, To => '', Cc => '', Bcc => '' - -Forwards a ticket's Create and Correspond Transactions and their Attachments as 'message/rfc822'. - -=cut - -sub ForwardTicket { - my $ticket = shift; - my %args = ( To => '', Cc => '', Bcc => '', @_ ); - - my $txns = $ticket->Transactions; - $txns->Limit( - FIELD => 'Type', - VALUE => $_, - ) for qw(Create Correspond); - - my $entity = MIME::Entity->build( - Type => 'multipart/mixed', - ); - $entity->add_part( $_ ) foreach - map $_->ContentAsMIME, - @{ $txns->ItemsArrayRef }; - - return SendForward( %args, Entity => $entity, Ticket => $ticket, Template => 'Forward Ticket' ); -} - -=head2 SendForward Entity => undef, Ticket => undef, Transaction => undef, Template => undef, To => '', Cc => '', Bcc => '' - -Forwards an Entity representing Ticket or Transaction as 'message/rfc822'. Entity is wrapped into Template. - -=cut - -sub SendForward { - my (%args) = ( - Entity => undef, - Ticket => undef, - Transaction => undef, - Template => 'Forward', - To => '', Cc => '', Bcc => '', - @_ - ); - - my $txn = $args{'Transaction'}; - my $ticket = $args{'Ticket'}; - $ticket ||= $txn->Object if $txn; - - my $entity = $args{'Entity'}; - unless ( $entity ) { - require Carp; - $RT::Logger->error(Carp::longmess("No entity provided")); - return (0, $ticket->loc("Couldn't send email")); + $entity->send($RT::MailCommand, $RT::MailParams); } - - my ($template, $msg) = PrepareEmailUsingTemplate( - Template => $args{'Template'}, - Arguments => { - Ticket => $ticket, - Transaction => $txn, - }, - ); - - my $mail; - if ( $template ) { - $mail = $template->MIMEObj; - } else { - $RT::Logger->warning($msg); - } - unless ( $mail ) { - $RT::Logger->warning("Couldn't generate email using template '$args{Template}'"); - - my $description; - unless ( $args{'Transaction'} ) { - $description = 'This is forward of ticket #'. $ticket->id; - } else { - $description = 'This is forward of transaction #' - . $txn->id ." of a ticket #". $txn->ObjectId; - } - $mail = MIME::Entity->build( - Type => 'text/plain', - Data => $description, - ); - } - - $mail->head->set( $_ => EncodeToMIME( String => $args{$_} ) ) - foreach grep defined $args{$_}, qw(To Cc Bcc); - - $mail->attach( - Type => 'message/rfc822', - Disposition => 'attachment', - Description => 'forwarded message', - Data => $entity->as_string, - ); - - my $from; - my $subject = ''; - $subject = $txn->Subject if $txn; - $subject ||= $ticket->Subject if $ticket; - if ( RT->Config->Get('ForwardFromUser') ) { - $from = ($txn || $ticket)->CurrentUser->UserObj->EmailAddress; - } else { - # XXX: what if want to forward txn of other object than ticket? - $subject = AddSubjectTag( $subject, $ticket ); - $from = $ticket->QueueObj->CorrespondAddress - || RT->Config->Get('CorrespondAddress'); - } - $mail->head->set( Subject => EncodeToMIME( String => "Fwd: $subject" ) ); - $mail->head->set( From => EncodeToMIME( String => $from ) ); - - my $status = RT->Config->Get('ForwardFromUser') - # never sign if we forward from User - ? SendEmail( %args, Entity => $mail, Sign => 0 ) - : SendEmail( %args, Entity => $mail ); - return (0, $ticket->loc("Couldn't send email")) unless $status; - return (1, $ticket->loc("Send email successfully")); } -=head2 SignEncrypt Entity => undef, Sign => 0, Encrypt => 0 - -Signs and encrypts message using L<RT::Crypt::GnuPG>, but as well -handle errors with users' keys. - -If a recipient has no key or has other problems with it, then the -unction sends a error to him using 'Error: public key' template. -Also, notifies RT's owner using template 'Error to RT owner: public key' -to inform that there are problems with users' keys. Then we filter -all bad recipients and retry. +# }}} -Returns 1 on success, 0 on error and -1 if all recipients are bad and -had been filtered out. - -=cut - -sub SignEncrypt { - my %args = ( - Entity => undef, - Sign => 0, - Encrypt => 0, - @_ - ); - return 1 unless $args{'Sign'} || $args{'Encrypt'}; - - my $msgid = $args{'Entity'}->head->get('Message-ID') || ''; - chomp $msgid; - - $RT::Logger->debug("$msgid Signing message") if $args{'Sign'}; - $RT::Logger->debug("$msgid Encrypting message") if $args{'Encrypt'}; - - require RT::Crypt::GnuPG; - my %res = RT::Crypt::GnuPG::SignEncrypt( %args ); - return 1 unless $res{'exit_code'}; - - my @status = RT::Crypt::GnuPG::ParseStatus( $res{'status'} ); - - my @bad_recipients; - foreach my $line ( @status ) { - # if the passphrase fails, either you have a bad passphrase - # or gpg-agent has died. That should get caught in Create and - # Update, but at least throw an error here - if (($line->{'Operation'}||'') eq 'PassphraseCheck' - && $line->{'Status'} =~ /^(?:BAD|MISSING)$/ ) { - $RT::Logger->error( "$line->{'Status'} PASSPHRASE: $line->{'Message'}" ); - return 0; - } - next unless ($line->{'Operation'}||'') eq 'RecipientsCheck'; - next if $line->{'Status'} eq 'DONE'; - $RT::Logger->error( $line->{'Message'} ); - push @bad_recipients, $line; - } - return 0 unless @bad_recipients; - - $_->{'AddressObj'} = (Email::Address->parse( $_->{'Recipient'} ))[0] - foreach @bad_recipients; - - foreach my $recipient ( @bad_recipients ) { - my $status = SendEmailUsingTemplate( - To => $recipient->{'AddressObj'}->address, - Template => 'Error: public key', - Arguments => { - %$recipient, - TicketObj => $args{'Ticket'}, - TransactionObj => $args{'Transaction'}, - }, - ); - unless ( $status ) { - $RT::Logger->error("Couldn't send 'Error: public key'"); - } - } - - my $status = SendEmailUsingTemplate( - To => RT->Config->Get('OwnerEmail'), - Template => 'Error to RT owner: public key', - Arguments => { - BadRecipients => \@bad_recipients, - TicketObj => $args{'Ticket'}, - TransactionObj => $args{'Transaction'}, - }, - ); - unless ( $status ) { - $RT::Logger->error("Couldn't send 'Error to RT owner: public key'"); - } - - DeleteRecipientsFromHead( - $args{'Entity'}->head, - map $_->{'AddressObj'}->address, @bad_recipients - ); - - unless ( $args{'Entity'}->head->get('To') - || $args{'Entity'}->head->get('Cc') - || $args{'Entity'}->head->get('Bcc') ) - { - $RT::Logger->debug("$msgid No recipients that have public key, not sending"); - return -1; - } - - # redo without broken recipients - %res = RT::Crypt::GnuPG::SignEncrypt( %args ); - return 0 if $res{'exit_code'}; - - return 1; -} - -use MIME::Words (); - -=head2 EncodeToMIME - -Takes a hash with a String and a Charset. Returns the string encoded -according to RFC2047, using B (base64 based) encoding. - -String must be a perl string, octets are returned. - -If Charset is not provided then $EmailOutputEncoding config option -is used, or "latin-1" if that is not set. - -=cut - -sub EncodeToMIME { - my %args = ( - String => undef, - Charset => undef, - @_ - ); - my $value = $args{'String'}; - return $value unless $value; # 0 is perfect ascii - my $charset = $args{'Charset'} || RT->Config->Get('EmailOutputEncoding'); - my $encoding = 'B'; - - # using RFC2047 notation, sec 2. - # encoded-word = "=?" charset "?" encoding "?" encoded-text "?=" - - # An 'encoded-word' may not be more than 75 characters long - # - # MIME encoding increases 4/3*(number of bytes), and always in multiples - # of 4. Thus we have to find the best available value of bytes available - # for each chunk. - # - # First we get the integer max which max*4/3 would fit on space. - # Then we find the greater multiple of 3 lower or equal than $max. - my $max = int( - ( ( 75 - length( '=?' . $charset . '?' . $encoding . '?' . '?=' ) ) - * 3 - ) / 4 - ); - $max = int( $max / 3 ) * 3; - - chomp $value; - - if ( $max <= 0 ) { - - # gives an error... - $RT::Logger->crit("Can't encode! Charset or encoding too big."); - return ($value); - } - - return ($value) unless $value =~ /[^\x20-\x7e]/; - - $value =~ s/\s+$//; - - # we need perl string to split thing char by char - Encode::_utf8_on($value) unless Encode::is_utf8($value); - - my ( $tmp, @chunks ) = ( '', () ); - while ( length $value ) { - my $char = substr( $value, 0, 1, '' ); - my $octets = Encode::encode( $charset, $char ); - if ( length($tmp) + length($octets) > $max ) { - push @chunks, $tmp; - $tmp = ''; - } - $tmp .= $octets; - } - push @chunks, $tmp if length $tmp; - - # encode an join chuncks - $value = join "\n ", - map MIME::Words::encode_mimeword( $_, $encoding, $charset ), - @chunks; - return ($value); -} +# {{{ Create User sub CreateUser { - my ( $Username, $Address, $Name, $ErrorsTo, $entity ) = @_; - - my $NewUser = RT::User->new( $RT::SystemUser ); - - my ( $Val, $Message ) = $NewUser->Create( - Name => ( $Username || $Address ), - EmailAddress => $Address, - RealName => $Name, - Password => undef, - Privileged => 0, - Comments => 'Autocreated on ticket submission', - ); - + my ($Username, $Address, $Name, $ErrorsTo, $entity) = @_; + my $NewUser = RT::User->new($RT::SystemUser); + + # This data is tainted by some Very Broken mailers. + # (Sometimes they send raw ISO 8859-1 data here. fear that. + require Encode; + $Username = Encode::encode(utf8 => $Username, Encode::FB_PERLQQ()) if defined $Username; + $Name = Encode::encode(utf8 => $Name, Encode::FB_PERLQQ()) if defined $Name; + + my ($Val, $Message) = + $NewUser->Create(Name => ($Username || $Address), + EmailAddress => $Address, + RealName => $Name, + Password => undef, + Privileged => 0, + Comments => 'Autocreated on ticket submission' + ); + unless ($Val) { - + # Deal with the race condition of two account creations at once + # if ($Username) { $NewUser->LoadByName($Username); } - - unless ( $NewUser->Id ) { + + unless ($NewUser->Id) { $NewUser->LoadByEmail($Address); } - - unless ( $NewUser->Id ) { - MailError( - To => $ErrorsTo, - Subject => "User could not be created", - Explanation => - "User creation failed in mailgateway: $Message", - MIMEObj => $entity, - LogLevel => 'crit', - ); + + unless ($NewUser->Id) { + MailError( To => $ErrorsTo, + Subject => "User could not be created", + Explanation => "User creation failed in mailgateway: $Message", + MIMEObj => $entity, + LogLevel => 'crit' + ); } } #Load the new user object - my $CurrentUser = new RT::CurrentUser; - $CurrentUser->LoadByEmail( $Address ); + my $CurrentUser = RT::CurrentUser->new(); + $CurrentUser->LoadByEmail($Address); - unless ( $CurrentUser->id ) { - $RT::Logger->warning( - "Couldn't load user '$Address'." . "giving up" ); - MailError( - To => $ErrorsTo, - Subject => "User could not be loaded", - Explanation => - "User '$Address' could not be loaded in the mail gateway", - MIMEObj => $entity, - LogLevel => 'crit' - ); + unless ($CurrentUser->id) { + $RT::Logger->warning("Couldn't load user '$Address'.". "giving up"); + MailError( To => $ErrorsTo, + Subject => "User could not be loaded", + Explanation => "User '$Address' could not be loaded in the mail gateway", + MIMEObj => $entity, + LogLevel => 'crit' + ); } return $CurrentUser; } +# }}} +# {{{ ParseCcAddressesFromHead +=head2 ParseCcAddressesFromHead HASHREF - -=head2 ParseCcAddressesFromHead HASH - -Takes a hash containing QueueObj, Head and CurrentUser objects. -Returns a list of all email addresses in the To and Cc -headers b<except> the current Queue\'s email addresses, the CurrentUser\'s +Takes a hashref object containing QueueObj, Head and CurrentUser objects. +Returns a list of all email addresses in the To and Cc +headers b<except> the current Queue\'s email addresses, the CurrentUser\'s email address and anything that the configuration sub RT::IsRTAddress matches. =cut - + sub ParseCcAddressesFromHead { - my %args = ( - Head => undef, - QueueObj => undef, - CurrentUser => undef, - @_ - ); - - my $current_address = lc $args{'CurrentUser'}->EmailAddress; - my $user = $args{'CurrentUser'}->UserObj; - - return - grep $_ ne $current_address && !RT::EmailParser->IsRTAddress( $_ ), - map lc $user->CanonicalizeEmailAddress( $_->address ), - map Email::Address->parse( $args{'Head'}->get( $_ ) ), - qw(To Cc); + my %args = ( Head => undef, + QueueObj => undef, + CurrentUser => undef, + @_ ); + + my (@Addresses); + + my @ToObjs = Mail::Address->parse($args{'Head'}->get('To')); + my @CcObjs = Mail::Address->parse($args{'Head'}->get('Cc')); + + foreach my $AddrObj (@ToObjs, @CcObjs) { + my $Address = $AddrObj->address; + $Address = $args{'CurrentUser'}->UserObj->CanonicalizeEmailAddress($Address); + next if ($args{'CurrentUser'}->EmailAddress =~ /^$Address$/i); + next if ($args{'QueueObj'}->CorrespondAddress =~ /^$Address$/i); + next if ($args{'QueueObj'}->CommentAddress =~ /^$Address$/i); + next if (RT::EmailParser::IsRTAddress(undef, $Address)); + + push (@Addresses, $Address); + } + return (@Addresses); } +# }}} -=head2 ParseSenderAddressFromHead HEAD +# {{{ ParseSenderAdddressFromHead -Takes a MIME::Header object. Returns a tuple: (user@host, friendly name) +=head2 ParseSenderAddressFromHead + +Takes a MIME::Header object. Returns a tuple: (user@host, friendly name) of the From (evaluated in order of Reply-To:, From:, Sender) =cut sub ParseSenderAddressFromHead { my $head = shift; - #Figure out who's sending this message. - foreach my $header ('Reply-To', 'From', 'Sender') { - my $addr_line = $head->get($header) || next; - my ($addr, $name) = ParseAddressFromHeader( $addr_line ); - # only return if the address is not empty - return ($addr, $name) if $addr; - } - - return (undef, undef); + my $From = $head->get('Reply-To') || + $head->get('From') || + $head->get('Sender'); + return (ParseAddressFromHeader($From)); } +# }}} -=head2 ParseErrorsToAddressFromHead HEAD +# {{{ ParseErrorsToAdddressFromHead + +=head2 ParseErrorsToAddressFromHead Takes a MIME::Header object. Return a single value : user@host -of the From (evaluated in order of Return-path:,Errors-To:,Reply-To:, -From:, Sender) +of the From (evaluated in order of Errors-To:,Reply-To:, From:, Sender) =cut sub ParseErrorsToAddressFromHead { my $head = shift; - #Figure out who's sending this message. - foreach my $header ( 'Errors-To', 'Reply-To', 'From', 'Sender' ) { - - # If there's a header of that name - my $headerobj = $head->get($header); - if ($headerobj) { - my ( $addr, $name ) = ParseAddressFromHeader($headerobj); - - # If it's got actual useful content... - return ($addr) if ($addr); - } + foreach my $header ('Errors-To' , 'Reply-To', 'From', 'Sender' ) { + # If there's a header of that name + my $headerobj = $head->get($header); + if ($headerobj) { + my ($addr, $name ) = ParseAddressFromHeader($headerobj); + # If it's got actual useful content... + return ($addr) if ($addr); + } } } +# }}} - +# {{{ ParseAddressFromHeader =head2 ParseAddressFromHeader ADDRESS -Takes an address from C<$head->get('Line')> and returns a tuple: user@host, friendly name +Takes an address from $head->get('Line') and returns a tuple: user@host, friendly name =cut -sub ParseAddressFromHeader { - my $Addr = shift; - # Some broken mailers send: ""Vincent, Jesse"" <jesse@fsck.com>. Hate - $Addr =~ s/\"\"(.*?)\"\"/\"$1\"/g; - my @Addresses = RT::EmailParser->ParseEmailAddress($Addr); +sub ParseAddressFromHeader{ + my $Addr = shift; + + my @Addresses = Mail::Address->parse($Addr); + + my $AddrObj = $Addresses[0]; - my ($AddrObj) = grep ref $_, @Addresses; - unless ( $AddrObj ) { - return ( undef, undef ); + unless (ref($AddrObj)) { + return(undef,undef); } - - my $Name = ( $AddrObj->name || $AddrObj->phrase || $AddrObj->comment || $AddrObj->address ); - + + my $Name = ($AddrObj->phrase || $AddrObj->comment || $AddrObj->address); + #Lets take the from and load a user object. my $Address = $AddrObj->address; - return ( $Address, $Name ); -} - -=head2 DeleteRecipientsFromHead HEAD RECIPIENTS - -Gets a head object and list of addresses. -Deletes addresses from To, Cc or Bcc fields. - -=cut - -sub DeleteRecipientsFromHead { - my $head = shift; - my %skip = map { lc $_ => 1 } @_; - - foreach my $field ( qw(To Cc Bcc) ) { - $head->set( $field => - join ', ', map $_->format, grep !$skip{ lc $_->address }, - Email::Address->parse( $head->get( $field ) ) - ); - } -} - -sub GenMessageId { - my %args = ( - Ticket => undef, - Scrip => undef, - ScripAction => undef, - @_ - ); - my $org = RT->Config->Get('Organization'); - my $ticket_id = ( ref $args{'Ticket'}? $args{'Ticket'}->id : $args{'Ticket'} ) || 0; - my $scrip_id = ( ref $args{'Scrip'}? $args{'Scrip'}->id : $args{'Scrip'} ) || 0; - my $sent = ( ref $args{'ScripAction'}? $args{'ScripAction'}->{'_Message_ID'} : 0 ) || 0; - - return "<rt-". $RT::VERSION ."-". $$ ."-". CORE::time() ."-". int(rand(2000)) .'.' - . $ticket_id ."-". $scrip_id ."-". $sent ."@". $org .">" ; + return ($Address, $Name); } +# }}} -sub SetInReplyTo { - my %args = ( - Message => undef, - InReplyTo => undef, - Ticket => undef, - @_ - ); - return unless $args{'Message'} && $args{'InReplyTo'}; - - my $get_header = sub { - my @res; - if ( $args{'InReplyTo'}->isa('MIME::Entity') ) { - @res = $args{'InReplyTo'}->head->get( shift ); - } else { - @res = $args{'InReplyTo'}->GetHeader( shift ) || ''; - } - return grep length, map { split /\s+/m, $_ } grep defined, @res; - }; - - my @id = $get_header->('Message-ID'); - #XXX: custom header should begin with X- otherwise is violation of the standard - my @rtid = $get_header->('RT-Message-ID'); - my @references = $get_header->('References'); - unless ( @references ) { - @references = $get_header->('In-Reply-To'); - } - push @references, @id, @rtid; - if ( $args{'Ticket'} ) { - my $pseudo_ref = '<RT-Ticket-'. $args{'Ticket'}->id .'@'. RT->Config->Get('Organization') .'>'; - push @references, $pseudo_ref unless grep $_ eq $pseudo_ref, @references; - } - @references = splice @references, 4, -6 - if @references > 10; - - my $mail = $args{'Message'}; - $mail->head->set( 'In-Reply-To' => join ' ', @rtid? (@rtid) : (@id) ) if @id || @rtid; - $mail->head->set( 'References' => join ' ', @references ); -} -sub ParseTicketId { - my $Subject = shift; - - my $rtname = RT->Config->Get('rtname'); - my $test_name = RT->Config->Get('EmailSubjectTagRegex') || qr/\Q$rtname\E/i; - - my $id; - if ( $Subject =~ s/\[$test_name\s+\#(\d+)\s*\]//i ) { - $id = $1; - } else { - foreach my $tag ( RT->System->SubjectTag ) { - next unless $Subject =~ s/\[\Q$tag\E\s+\#(\d+)\s*\]//i; - $id = $1; - last; - } - } - return undef unless $id; - - $RT::Logger->debug("Found a ticket ID. It's $id"); - return $id; -} - -sub AddSubjectTag { - my $subject = shift; - my $ticket = shift; - unless ( ref $ticket ) { - my $tmp = RT::Ticket->new( $RT::SystemUser ); - $tmp->Load( $ticket ); - $ticket = $tmp; - } - my $id = $ticket->id; - my $queue_tag = $ticket->QueueObj->SubjectTag; - - my $tag_re = RT->Config->Get('EmailSubjectTagRegex'); - unless ( $tag_re ) { - my $tag = $queue_tag || RT->Config->Get('rtname'); - $tag_re = qr/\Q$tag\E/; - } elsif ( $queue_tag ) { - $tag_re = qr/$tag_re|\Q$queue_tag\E/; - } - return $subject if $subject =~ /\[$tag_re\s+#$id\]/; - - $subject =~ s/(\r\n|\n|\s)/ /gi; - chomp $subject; - return "[". ($queue_tag || RT->Config->Get('rtname')) ." #$id] $subject"; -} - - -=head2 Gateway ARGSREF - - -Takes parameters: - - action - queue - message +=head2 Gateway This performs all the "guts" of the mail rt-mailgate program, and is designed to be called from the web interface with a message, user object, and so on. -Can also take an optional 'ticket' parameter; this ticket id overrides -any ticket id found in the subject. - -Returns: - - An array of: - - (status code, message, optional ticket object) - - status code is a numeric value. - - for temporary failures, the status code should be -75 - - for permanent failures which are handled by RT, the status code - should be 0 - - for succces, the status code should be 1 - - - =cut -sub _LoadPlugins { - my @mail_plugins = @_; - - my @res; - foreach my $plugin (@mail_plugins) { - if ( ref($plugin) eq "CODE" ) { - push @res, $plugin; - } elsif ( !ref $plugin ) { - my $Class = $plugin; - $Class = "RT::Interface::Email::" . $Class - unless $Class =~ /^RT::Interface::Email::/; - $Class->require or - do { $RT::Logger->error("Couldn't load $Class: $@"); next }; - - no strict 'refs'; - unless ( defined *{ $Class . "::GetCurrentUser" }{CODE} ) { - $RT::Logger->crit( "No GetCurrentUser code found in $Class module"); - next; - } - push @res, $Class; - } else { - $RT::Logger->crit( "$plugin - is not class name or code reference"); - } - } - return @res; -} - sub Gateway { - my $argsref = shift; - my %args = ( - action => 'correspond', - queue => '1', - ticket => undef, - message => undef, - %$argsref - ); - - my $SystemTicket; - my $Right; + my %args = ( message => undef, + queue => 1, + action => 'correspond', + ticket => undef, + @_ ); # Validate the action - my ( $status, @actions ) = IsCorrectAction( $args{'action'} ); - unless ($status) { - return ( - -75, - "Invalid 'action' parameter " - . $actions[0] - . " for queue " - . $args{'queue'}, - undef - ); + unless ( $args{'action'} =~ /^(comment|correspond|action)$/ ) { + + # Can't safely loc this. What object do we loc around? + return ( 0, "Invalid 'action' parameter", undef ); } my $parser = RT::EmailParser->new(); - $parser->SmartParseMIMEEntityFromScalar( - Message => $args{'message'}, - Decode => 0, - Exact => 1, - ); + $parser->ParseMIMEEntityFromScalar( $args{'message'} ); my $Message = $parser->Entity(); - unless ($Message) { - MailError( - Subject => "RT Bounce: Unparseable message", - Explanation => "RT couldn't process the message below", - Attach => $args{'message'} - ); - - return ( 0, - "Failed to parse this message. Something is likely badly wrong with the message" - ); - } - - my @mail_plugins = grep $_, RT->Config->Get('MailPlugins'); - push @mail_plugins, "Auth::MailFrom" unless @mail_plugins; - @mail_plugins = _LoadPlugins( @mail_plugins ); - - my %skip_plugin; - foreach my $class( grep !ref, @mail_plugins ) { - # check if we should apply filter before decoding - my $check_cb = do { - no strict 'refs'; - *{ $class . "::ApplyBeforeDecode" }{CODE}; - }; - next unless defined $check_cb; - next unless $check_cb->( - Message => $Message, - RawMessageRef => \$args{'message'}, - ); + my $head = $Message->head; - $skip_plugin{ $class }++; + my ( $CurrentUser, $AuthStat, $status, $error ); - my $Code = do { - no strict 'refs'; - *{ $class . "::GetCurrentUser" }{CODE}; - }; - my ($status, $msg) = $Code->( - Message => $Message, - RawMessageRef => \$args{'message'}, - ); - next if $status > 0; - - if ( $status == -2 ) { - return (1, $msg, undef); - } elsif ( $status == -1 ) { - return (0, $msg, undef); - } - } - @mail_plugins = grep !$skip_plugin{"$_"}, @mail_plugins; - $parser->_DecodeBodies; - $parser->_PostProcessNewEntity; + my $ErrorsTo = ParseErrorsToAddressFromHead($head); - my $head = $Message->head; - my $ErrorsTo = ParseErrorsToAddressFromHead( $head ); - - my $MessageId = $head->get('Message-ID') - || "<no-message-id-". time . rand(2000) .'@'. RT->Config->Get('Organization') .'>'; + my $MessageId = $head->get('Message-Id') + || "<no-message-id-" . time . rand(2000) . "\@.$RT::Organization>"; #Pull apart the subject line my $Subject = $head->get('Subject') || ''; chomp $Subject; - - # {{{ Lets check for mail loops of various sorts. - my ($should_store_machine_generated_message, $IsALoop, $result); - ( $should_store_machine_generated_message, $ErrorsTo, $result, $IsALoop ) = - _HandleMachineGeneratedMail( - Message => $Message, - ErrorsTo => $ErrorsTo, - Subject => $Subject, - MessageId => $MessageId - ); - - # Do not pass loop messages to MailPlugins, to make sure the loop - # is broken, unless $RT::StoreLoops is set. - if ($IsALoop && !$should_store_machine_generated_message) { - return ( 0, $result, undef ); - } - # }}} - $args{'ticket'} ||= ParseTicketId( $Subject ); - $SystemTicket = RT::Ticket->new( $RT::SystemUser ); - $SystemTicket->Load( $args{'ticket'} ) if ( $args{'ticket'} ) ; - if ( $SystemTicket->id ) { - $Right = 'ReplyToTicket'; - } else { - $Right = 'CreateTicket'; + $args{'ticket'} ||= $parser->ParseTicketId($Subject); + + my $SystemTicket; + if ($args{'ticket'} ) { + $SystemTicket = RT::Ticket->new($RT::SystemUser); + $SystemTicket->Load($args{'ticket'}); } #Set up a queue object - my $SystemQueueObj = RT::Queue->new( $RT::SystemUser ); + my $SystemQueueObj = RT::Queue->new($RT::SystemUser); $SystemQueueObj->Load( $args{'queue'} ); - # We can safely have no queue of we have a known-good ticket - unless ( $SystemTicket->id || $SystemQueueObj->id ) { - return ( -75, "RT couldn't find the queue: " . $args{'queue'}, undef ); - } - - my ($AuthStat, $CurrentUser, $error) = GetAuthenticationLevel( - MailPlugins => \@mail_plugins, - Actions => \@actions, - Message => $Message, - RawMessageRef => \$args{message}, - SystemTicket => $SystemTicket, - SystemQueue => $SystemQueueObj, - ); - - # {{{ If authentication fails and no new user was created, get out. - if ( !$CurrentUser || !$CurrentUser->id || $AuthStat == -1 ) { - - # If the plugins refused to create one, they lose. - unless ( $AuthStat == -1 ) { - _NoAuthorizedUserFound( - Right => $Right, - Message => $Message, - Requestor => $ErrorsTo, - Queue => $args{'queue'} - ); - - } - return ( 0, "Could not load a valid user", undef ); - } - # If we got a user, but they don't have the right to say things - if ( $AuthStat == 0 ) { + # We can safely have no queue of we have a known-good ticket + unless ( $args{'ticket'} || $SystemQueueObj->id ) { MailError( - To => $ErrorsTo, - Subject => "Permission Denied", - Explanation => - "You do not have permission to communicate with RT", - MIMEObj => $Message - ); - return ( - 0, - "$ErrorsTo tried to submit a message to " - . $args{'Queue'} - . " without permission.", - undef - ); - } - - - unless ($should_store_machine_generated_message) { - return ( 0, $result, undef ); + To => $RT::OwnerEmail, + Subject => "RT Bounce: $Subject", + Explanation => "RT couldn't find the queue: " . $args{'queue'}, + MIMEObj => $Message ); + return ( 0, "RT couldn't find the queue: " . $args{'queue'}, undef ); } - # if plugin's updated SystemTicket then update arguments - $args{'ticket'} = $SystemTicket->Id if $SystemTicket && $SystemTicket->Id; - - my $Ticket = RT::Ticket->new($CurrentUser); - - if ( !$args{'ticket'} && grep /^(comment|correspond)$/, @actions ) - { - - my @Cc; - my @Requestors = ( $CurrentUser->id ); - - if (RT->Config->Get('ParseNewMessageForTicketCcs')) { - @Cc = ParseCcAddressesFromHead( - Head => $head, - CurrentUser => $CurrentUser, - QueueObj => $SystemQueueObj - ); - } - - my ( $id, $Transaction, $ErrStr ) = $Ticket->Create( - Queue => $SystemQueueObj->Id, - Subject => $Subject, - Requestor => \@Requestors, - Cc => \@Cc, - MIMEObj => $Message - ); - if ( $id == 0 ) { - MailError( - To => $ErrorsTo, - Subject => "Ticket creation failed: $Subject", - Explanation => $ErrStr, - MIMEObj => $Message - ); - return ( 0, "Ticket creation failed: $ErrStr", $Ticket ); - } - - # strip comments&corresponds from the actions we don't need - # to record them if we've created the ticket just now - @actions = grep !/^(comment|correspond)$/, @actions; - $args{'ticket'} = $id; - - } elsif ( $args{'ticket'} ) { - - $Ticket->Load( $args{'ticket'} ); - unless ( $Ticket->Id ) { - my $error = "Could not find a ticket with id " . $args{'ticket'}; - MailError( - To => $ErrorsTo, - Subject => "Message not recorded: $Subject", - Explanation => $error, - MIMEObj => $Message - ); - - return ( 0, $error ); - } - $args{'ticket'} = $Ticket->id; - } else { - return ( 1, "Success", $Ticket ); - } - - # }}} - - my $unsafe_actions = RT->Config->Get('UnsafeEmailCommands'); - foreach my $action (@actions) { - - # If the action is comment, add a comment. - if ( $action =~ /^(?:comment|correspond)$/i ) { - my $method = ucfirst lc $action; - my ( $status, $msg ) = $Ticket->$method( MIMEObj => $Message ); - unless ($status) { - - #Warn the sender that we couldn't actually submit the comment. - MailError( - To => $ErrorsTo, - Subject => "Message not recorded: $Subject", - Explanation => $msg, - MIMEObj => $Message - ); - return ( 0, "Message not recorded: $msg", $Ticket ); - } - } elsif ($unsafe_actions) { - my ( $status, $msg ) = _RunUnsafeAction( - Action => $action, - ErrorsTo => $ErrorsTo, - Message => $Message, - Ticket => $Ticket, - CurrentUser => $CurrentUser, - ); - return ($status, $msg, $Ticket) unless $status == 1; - } - } - return ( 1, "Success", $Ticket ); -} - -=head2 GetAuthenticationLevel - # Authentication Level - # -1 - Get out. this user has been explicitly declined + # -1 - Get out. this user has been explicitly declined # 0 - User may not do anything (Not used at the moment) # 1 - Normal user # 2 - User is allowed to specify status updates etc. a la enhanced-mailgate -=cut - -sub GetAuthenticationLevel { - my %args = ( - MailPlugins => [], - Actions => [], - Message => undef, - RawMessageRef => undef, - SystemTicket => undef, - SystemQueue => undef, - @_, - ); - - my ( $CurrentUser, $AuthStat, $error ); - - # Initalize AuthStat so comparisons work correctly - $AuthStat = -9999999; - - # if plugin returns AuthStat -2 we skip action - # NOTE: this is experimental API and it would be changed - my %skip_action = (); - + push @RT::MailPlugins, "Auth::MailFrom" unless @RT::MailPlugins; # Since this needs loading, no matter what - foreach (@{ $args{MailPlugins} }) { - my ($Code, $NewAuthStat); + + for (@RT::MailPlugins) { + my $Code; + my $NewAuthStat; if ( ref($_) eq "CODE" ) { $Code = $_; - } else { - no strict 'refs'; - $Code = *{ $_ . "::GetCurrentUser" }{CODE}; } - - foreach my $action (@{ $args{Actions} }) { - ( $CurrentUser, $NewAuthStat ) = $Code->( - Message => $args{Message}, - RawMessageRef => $args{RawMessageRef}, - CurrentUser => $CurrentUser, - AuthLevel => $AuthStat, - Action => $action, - Ticket => $args{SystemTicket}, - Queue => $args{SystemQueue}, - ); - -# You get the highest level of authentication you were assigned, unless you get the magic -1 -# If a module returns a "-1" then we discard the ticket, so. - $AuthStat = $NewAuthStat - if ( $NewAuthStat > $AuthStat or $NewAuthStat == -1 or $NewAuthStat == -2 ); - - last if $AuthStat == -1; - $skip_action{$action}++ if $AuthStat == -2; + else { + $_ = "RT::Interface::Email::$_" unless /^RT::Interface::Email::/; + eval "require $_;"; + if ($@) { + die ("Couldn't load module $_: $@"); + next; + } + no strict 'refs'; + if ( !defined( $Code = *{ $_ . "::GetCurrentUser" }{CODE} ) ) { + die ("No GetCurrentUser code found in $_ module"); + next; + } } - # strip actions we should skip - @{$args{Actions}} = grep !$skip_action{$_}, @{$args{Actions}} - if $AuthStat == -2; - last unless @{$args{Actions}}; + ( $CurrentUser, $NewAuthStat ) = $Code->( Message => $Message, + CurrentUser => $CurrentUser, + AuthLevel => $AuthStat, + Action => $args{'action'}, + Ticket => $SystemTicket, + Queue => $SystemQueueObj ); + # You get the highest level of authentication you were assigned. last if $AuthStat == -1; + $AuthStat = $NewAuthStat if $NewAuthStat > $AuthStat; } - return $AuthStat if !wantarray; - - return ($AuthStat, $CurrentUser, $error); -} - -sub _RunUnsafeAction { - my %args = ( - Action => undef, - ErrorsTo => undef, - Message => undef, - Ticket => undef, - CurrentUser => undef, - @_ - ); - - if ( $args{'Action'} =~ /^take$/i ) { - my ( $status, $msg ) = $args{'Ticket'}->SetOwner( $args{'CurrentUser'}->id ); - unless ($status) { - MailError( - To => $args{'ErrorsTo'}, - Subject => "Ticket not taken", - Explanation => $msg, - MIMEObj => $args{'Message'} - ); - return ( 0, "Ticket not taken" ); - } - } elsif ( $args{'Action'} =~ /^resolve$/i ) { - my ( $status, $msg ) = $args{'Ticket'}->SetStatus('resolved'); - unless ($status) { - - #Warn the sender that we couldn't actually submit the comment. - MailError( - To => $args{'ErrorsTo'}, - Subject => "Ticket not resolved", - Explanation => $msg, - MIMEObj => $args{'Message'} - ); - return ( 0, "Ticket not resolved" ); - } - } else { - return ( 0, "Not supported unsafe action $args{'Action'}", $args{'Ticket'} ); - } - return ( 1, "Success" ); -} - -=head2 _NoAuthorizedUserFound - -Emails the RT Owner and the requestor when the auth plugins return "No auth user found" - -=cut - -sub _NoAuthorizedUserFound { - my %args = ( - Right => undef, - Message => undef, - Requestor => undef, - Queue => undef, - @_ - ); - - # Notify the RT Admin of the failure. - MailError( - To => RT->Config->Get('OwnerEmail'), - Subject => "Could not load a valid user", - Explanation => <<EOT, -RT could not load a valid user, and RT's configuration does not allow -for the creation of a new user for this email (@{[$args{Requestor}]}). - -You might need to grant 'Everyone' the right '@{[$args{Right}]}' for the -queue @{[$args{'Queue'}]}. + # {{{ If authentication fails and no new user was created, get out. + if ( !$CurrentUser or !$CurrentUser->Id or $AuthStat == -1 ) { -EOT - MIMEObj => $args{'Message'}, - LogLevel => 'error' - ); - - # Also notify the requestor that his request has been dropped. - if ($args{'Requestor'} ne RT->Config->Get('OwnerEmail')) { - MailError( - To => $args{'Requestor'}, - Subject => "Could not load a valid user", - Explanation => <<EOT, + # If the plugins refused to create one, they lose. + MailError( + Subject => "Could not load a valid user", + Explanation => <<EOT, RT could not load a valid user, and RT's configuration does not allow for the creation of a new user for your email. +Your RT administrator needs to grant 'Everyone' the right 'CreateTicket' +for this queue. + EOT - MIMEObj => $args{'Message'}, - LogLevel => 'error' - ); + MIMEObj => $Message, + LogLevel => 'error' ) + unless $AuthStat == -1; + return ( 0, "Could not load a valid user", undef ); } -} - -=head2 _HandleMachineGeneratedMail - -Takes named params: - Message - ErrorsTo - Subject - -Checks the message to see if it's a bounce, if it looks like a loop, if it's autogenerated, etc. -Returns a triple of ("Should we continue (boolean)", "New value for $ErrorsTo", "Status message", -"This message appears to be a loop (boolean)" ); - -=cut -sub _HandleMachineGeneratedMail { - my %args = ( Message => undef, ErrorsTo => undef, Subject => undef, MessageId => undef, @_ ); - my $head = $args{'Message'}->head; - my $ErrorsTo = $args{'ErrorsTo'}; - - my $IsBounce = CheckForBounce($head); + # }}} + # {{{ Lets check for mail loops of various sorts. my $IsAutoGenerated = CheckForAutoGenerated($head); my $IsSuspiciousSender = CheckForSuspiciousSender($head); @@ -1726,92 +496,153 @@ sub _HandleMachineGeneratedMail { my $SquelchReplies = 0; - my $owner_mail = RT->Config->Get('OwnerEmail'); - #If the message is autogenerated, we need to know, so we can not # send mail to the sender - if ( $IsBounce || $IsSuspiciousSender || $IsAutoGenerated || $IsALoop ) { + if ( $IsSuspiciousSender || $IsAutoGenerated || $IsALoop ) { $SquelchReplies = 1; - $ErrorsTo = $owner_mail; + $ErrorsTo = $RT::OwnerEmail; } + # }}} + + # {{{ Drop it if it's disallowed + if ( $AuthStat == 0 ) { + MailError( + To => $ErrorsTo, + Subject => "Permission Denied", + Explanation => "You do not have permission to communicate with RT", + MIMEObj => $Message ); + } + + # }}} + # {{{ Warn someone if it's a loop + # Warn someone if it's a loop, before we drop it on the ground if ($IsALoop) { - $RT::Logger->crit("RT Received mail (".$args{MessageId}.") from itself."); + $RT::Logger->crit("RT Recieved mail ($MessageId) from itself."); #Should we mail it to RTOwner? - if ( RT->Config->Get('LoopsToRTOwner') ) { - MailError( - To => $owner_mail, - Subject => "RT Bounce: ".$args{'Subject'}, - Explanation => "RT thinks this message may be a bounce", - MIMEObj => $args{Message} - ); - } + if ($RT::LoopsToRTOwner) { + MailError( To => $RT::OwnerEmail, + Subject => "RT Bounce: $Subject", + Explanation => "RT thinks this message may be a bounce", + MIMEObj => $Message ); - #Do we actually want to store it? - return ( 0, $ErrorsTo, "Message Bounced", $IsALoop ) - unless RT->Config->Get('StoreLoops'); + #Do we actually want to store it? + return ( 0, "Message Bounced", undef ) unless ($RT::StoreLoops); + } } - # Squelch replies if necessary + # }}} + + # {{{ Squelch replies if necessary # Don't let the user stuff the RT-Squelch-Replies-To header. if ( $head->get('RT-Squelch-Replies-To') ) { - $head->add( - 'RT-Relocated-Squelch-Replies-To', - $head->get('RT-Squelch-Replies-To') - ); + $head->add( 'RT-Relocated-Squelch-Replies-To', + $head->get('RT-Squelch-Replies-To') ); $head->delete('RT-Squelch-Replies-To'); } if ($SquelchReplies) { + ## TODO: This is a hack. It should be some other way to + ## indicate that the transaction should be "silent". - # Squelch replies to the sender, and also leave a clue to - # allow us to squelch ALL outbound messages. This way we - # can punt the logic of "what to do when we get a bounce" - # to the scrip. We might want to notify nobody. Or just - # the RT Owner. Or maybe all Privileged watchers. my ( $Sender, $junk ) = ParseSenderAddressFromHead($head); - $head->add( 'RT-Squelch-Replies-To', $Sender ); - $head->add( 'RT-DetectedAutoGenerated', 'true' ); + $head->add( 'RT-Squelch-Replies-To', $Sender ); } - return ( 1, $ErrorsTo, "Handled machine detection", $IsALoop ); -} -=head2 IsCorrectAction + # }}} -Returns a list of valid actions we've found for this message + my $Ticket = RT::Ticket->new($CurrentUser); -=cut + # {{{ If we don't have a ticket Id, we're creating a new ticket + if ( !$args{'ticket'} ) { + + # {{{ Create a new ticket -sub IsCorrectAction { - my $action = shift; - my @actions = grep $_, split /-/, $action; - return ( 0, '(no value)' ) unless @actions; - foreach ( @actions ) { - return ( 0, $_ ) unless /^(?:comment|correspond|take|resolve)$/; + my @Cc; + my @Requestors = ( $CurrentUser->id ); + + if ($RT::ParseNewMessageForTicketCcs) { + @Cc = ParseCcAddressesFromHead( Head => $head, + CurrentUser => $CurrentUser, + QueueObj => $SystemQueueObj ); + } + + my ( $id, $Transaction, $ErrStr ) = $Ticket->Create( + Queue => $SystemQueueObj->Id, + Subject => $Subject, + Requestor => \@Requestors, + Cc => \@Cc, + MIMEObj => $Message ); + if ( $id == 0 ) { + MailError( To => $ErrorsTo, + Subject => "Ticket creation failed", + Explanation => $ErrStr, + MIMEObj => $Message ); + $RT::Logger->error("Create failed: $id / $Transaction / $ErrStr "); + return ( 0, "Ticket creation failed", $Ticket ); + } + + # }}} } - return ( 1, @actions ); -} -sub _RecordSendEmailFailure { - my $ticket = shift; - if ($ticket) { - $ticket->_RecordNote( - NoteType => 'SystemError', - Content => "Sending the previous mail has failed. Please contact your admin, they can find more details in the logs.", - ); - return 1; + # }}} + + # If the action is comment, add a comment. + elsif ( $args{'action'} =~ /^(comment|correspond)$/i ) { + $Ticket->Load($args{'ticket'}); + unless ( $Ticket->Id ) { + my $message = "Could not find a ticket with id ".$args{'ticket'}; + MailError( To => $ErrorsTo, + Subject => "Message not recorded", + Explanation => $message, + MIMEObj => $Message ); + + return ( 0, $message); + } + + my ( $status, $msg ); + if ( $args{'action'} =~ /^correspond$/ ) { + ( $status, $msg ) = $Ticket->Correspond( MIMEObj => $Message ); + } + else { + ( $status, $msg ) = $Ticket->Comment( MIMEObj => $Message ); + } + unless ($status) { + + #Warn the sender that we couldn't actually submit the comment. + MailError( To => $ErrorsTo, + Subject => "Message not recorded", + Explanation => $msg, + MIMEObj => $Message ); + return ( 0, "Message not recorded", $Ticket ); + } } + else { - $RT::Logger->error( "Can't record send email failure as ticket is missing" ); - return; + + #Return mail to the sender with an error + MailError( To => $ErrorsTo, + Subject => "RT Configuration error", + Explanation => "'" + . $args{'action'} + . "' not a recognized action." + . " Your RT administrator has misconfigured " + . "the mail aliases which invoke RT", + MIMEObj => $Message ); + $RT::Logger->crit( $args{'action'} . " type unknown for $MessageId" ); + return ( 0, "Configuration error: " . $args{'action'} . " not a recognized action", $Ticket ); + } + + +return ( 1, "Success", $Ticket ); } eval "require RT::Interface::Email_Vendor"; -die $@ if ( $@ && $@ !~ qr{^Can't locate RT/Interface/Email_Vendor.pm} ); +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Email_Vendor.pm}); eval "require RT::Interface::Email_Local"; -die $@ if ( $@ && $@ !~ qr{^Can't locate RT/Interface/Email_Local.pm} ); +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Email_Local.pm}); 1; diff --git a/rt/lib/RT/Interface/Web.pm b/rt/lib/RT/Interface/Web.pm index ca357a31f..106209d64 100644 --- a/rt/lib/RT/Interface/Web.pm +++ b/rt/lib/RT/Interface/Web.pm @@ -2,8 +2,8 @@ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) # @@ -192,9 +192,6 @@ sub HandleRequest { SendSessionCookie(); $HTML::Mason::Commands::session{'CurrentUser'} = RT::CurrentUser->new() unless _UserLoggedIn(); - # Process session-related callbacks before any auth attempts - $HTML::Mason::Commands::m->callback( %$ARGS, CallbackName => 'Session', CallbackPage => '/autohandler' ); - MaybeShowNoAuthPage($ARGS); AttemptExternalAuth($ARGS) if RT->Config->Get('WebExternalAuthContinuous') or not _UserLoggedIn(); @@ -207,29 +204,13 @@ sub HandleRequest { unless ( _UserLoggedIn() ) { _ForceLogout(); - # Authenticate if the user is trying to login via user/pass query args - my ($authed, $msg) = AttemptPasswordAuthentication($ARGS); - - unless ($authed) { - my $m = $HTML::Mason::Commands::m; - - # REST urls get a special 401 response - if ($m->request_comp->path =~ '^/REST/\d+\.\d+/') { - $HTML::Mason::Commands::r->content_type("text/plain"); - $m->error_format("text"); - $m->out("RT/$RT::VERSION 401 Credentials required\n"); - $m->out("\n$msg\n") if $msg; - $m->abort; - } - # Specially handle /index.html so that we get a nicer URL - elsif ( $m->request_comp->path eq '/index.html' ) { - my $next = SetNextPage(RT->Config->Get('WebURL')); - $m->comp('/NoAuth/Login.html', next => $next, actions => [$msg]); - $m->abort; - } - else { - TangentForLogin(results => ($msg ? LoginError($msg) : undef)); - } + # If the user is logging in, let's authenticate + if ( defined $ARGS->{user} && defined $ARGS->{pass} ) { + AttemptPasswordAuthentication($ARGS); + } else { + # if no credentials then show him login page + $HTML::Mason::Commands::m->comp( '/Elements/Login', %$ARGS ); + $HTML::Mason::Commands::m->abort; } } @@ -242,9 +223,6 @@ sub HandleRequest { ShowRequestedPage($ARGS); LogRecordedSQLStatements(); - - # Process per-page final cleanup callbacks - $HTML::Mason::Commands::m->callback( %$ARGS, CallbackName => 'Final', CallbackPage => '/autohandler' ); } sub _ForceLogout { @@ -261,108 +239,6 @@ sub _UserLoggedIn { } -=head2 LoginError ERROR - -Pushes a login error into the Actions session store and returns the hash key. - -=cut - -sub LoginError { - my $new = shift; - my $key = Digest::MD5::md5_hex( rand(1024) ); - push @{ $HTML::Mason::Commands::session{"Actions"}->{$key} ||= [] }, $new; - $HTML::Mason::Commands::session{'i'}++; - return $key; -} - -=head2 SetNextPage [PATH] - -Intuits and stashes the next page in the sesssion hash. If PATH is -specified, uses that instead of the value of L<IntuitNextPage()>. Returns -the hash value. - -=cut - -sub SetNextPage { - my $next = shift || IntuitNextPage(); - my $hash = Digest::MD5::md5_hex($next . $$ . rand(1024)); - - $HTML::Mason::Commands::session{'NextPage'}->{$hash} = $next; - $HTML::Mason::Commands::session{'i'}++; - - SendSessionCookie(); - return $hash; -} - - -=head2 TangentForLogin [HASH] - -Redirects to C</NoAuth/Login.html>, setting the value of L<IntuitNextPage> as -the next page. Optionally takes a hash which is dumped into query params. - -=cut - -sub TangentForLogin { - my $hash = SetNextPage(); - my %query = (@_, next => $hash); - my $login = RT->Config->Get('WebURL') . 'NoAuth/Login.html?'; - $login .= $HTML::Mason::Commands::m->comp('/Elements/QueryString', %query); - Redirect($login); -} - -=head2 TangentForLoginWithError ERROR - -Localizes the passed error message, stashes it with L<LoginError> and then -calls L<TangentForLogin> with the appropriate results key. - -=cut - -sub TangentForLoginWithError { - my $key = LoginError(HTML::Mason::Commands::loc(@_)); - TangentForLogin( results => $key ); -} - -=head2 IntuitNextPage - -Attempt to figure out the path to which we should return the user after a -tangent. The current request URL is used, or failing that, the C<WebURL> -configuration variable. - -=cut - -sub IntuitNextPage { - my $req_uri; - - # This includes any query parameters. Redirect will take care of making - # it an absolute URL. - if ($ENV{'REQUEST_URI'}) { - $req_uri = $ENV{'REQUEST_URI'}; - - # collapse multiple leading slashes so the first part doesn't look like - # a hostname of a schema-less URI - $req_uri =~ s{^/+}{/}; - } - - my $next = defined $req_uri ? $req_uri : RT->Config->Get('WebURL'); - - # sanitize $next - my $uri = URI->new($next); - - # You get undef scheme with a relative uri like "/Search/Build.html" - unless (!defined($uri->scheme) || $uri->scheme eq 'http' || $uri->scheme eq 'https') { - $next = RT->Config->Get('WebURL'); - } - - # Make sure we're logging in to the same domain - # You can get an undef authority with a relative uri like "index.html" - my $uri_base_url = URI->new(RT->Config->Get('WebBaseURL')); - unless (!defined($uri->authority) || $uri->authority eq $uri_base_url->authority) { - $next = RT->Config->Get('WebURL'); - } - - return $next; -} - =head2 MaybeShowInstallModePage This function, called exclusively by RT's autohandler, dispatches @@ -402,10 +278,6 @@ sub MaybeShowNoAuthPage { return unless $m->base_comp->path =~ RT->Config->Get('WebNoAuthRegex'); - # Don't show the login page to logged in users - Redirect(RT->Config->Get('WebURL')) - if $m->base_comp->path eq '/NoAuth/Login.html' and _UserLoggedIn(); - # If it's a noauth file, don't ask for auth. SendSessionCookie(); $m->comp( { base_comp => $m->request_comp }, $m->fetch_next, %$ARGS ); @@ -508,12 +380,9 @@ sub AttemptExternalAuth { # we failed to successfully create the user. abort abort abort. delete $HTML::Mason::Commands::session{'CurrentUser'}; - - if (RT->Config->Get('WebFallbackToInternalAuth')) { - TangentForLoginWithError('Cannot create user: [_1]', $msg); - } else { - $m->abort(); - } + $m->comp( '/Elements/Login', %$ARGS, Error => HTML::Mason::Commands::loc( 'Cannot create user: [_1]', $msg ) ) + if RT->Config->Get('WebFallbackToInternalAuth');; + $m->abort(); } } @@ -524,13 +393,15 @@ sub AttemptExternalAuth { $user = $orig_user; if ( RT->Config->Get('WebExternalOnly') ) { - TangentForLoginWithError('You are not an authorized user'); + $m->comp( '/Elements/Login', %$ARGS, Error => HTML::Mason::Commands::loc('You are not an authorized user') ); + $m->abort(); } } } elsif ( RT->Config->Get('WebFallbackToInternalAuth') ) { unless ( defined $HTML::Mason::Commands::session{'CurrentUser'} ) { # XXX unreachable due to prior defaulting in HandleRequest (check c34d108) - TangentForLoginWithError('You are not an authorized user'); + $m->comp( '/Elements/Login', %$ARGS, Error => HTML::Mason::Commands::loc('You are not an authorized user') ); + $m->abort(); } } else { @@ -543,9 +414,7 @@ sub AttemptExternalAuth { } sub AttemptPasswordAuthentication { - my $ARGS = shift; - return unless defined $ARGS->{user} && defined $ARGS->{pass}; - + my $ARGS = shift; my $user_obj = RT::CurrentUser->new(); $user_obj->Load( $ARGS->{user} ); @@ -553,34 +422,15 @@ sub AttemptPasswordAuthentication { unless ( $user_obj->id && $user_obj->IsPassword( $ARGS->{pass} ) ) { $RT::Logger->error("FAILED LOGIN for @{[$ARGS->{user}]} from $ENV{'REMOTE_ADDR'}"); + $m->comp( '/Elements/Login', %$ARGS, Error => HTML::Mason::Commands::loc('Your username or password is incorrect'), ); $m->callback( %$ARGS, CallbackName => 'FailedLogin', CallbackPage => '/autohandler' ); - return (0, HTML::Mason::Commands::loc('Your username or password is incorrect')); + $m->abort; } - else { - $RT::Logger->info("Successful login for @{[$ARGS->{user}]} from $ENV{'REMOTE_ADDR'}"); - - # It's important to nab the next page from the session before we blow - # the session away - my $next = delete $HTML::Mason::Commands::session{'NextPage'}->{$ARGS->{'next'} || ''}; - - InstantiateNewSession(); - $HTML::Mason::Commands::session{'CurrentUser'} = $user_obj; - SendSessionCookie(); - $m->callback( %$ARGS, CallbackName => 'SuccessfulLogin', CallbackPage => '/autohandler' ); - - # Really the only time we don't want to redirect here is if we were - # passed user and pass as query params in the URL. - if ($next) { - Redirect($next); - } - elsif ($ARGS->{'next'}) { - # Invalid hash, but still wants to go somewhere, take them to / - Redirect(RT->Config->Get('WebURL')); - } - - return (1, HTML::Mason::Commands::loc('Logged in')); - } + $RT::Logger->info("Successful login for @{[$ARGS->{user}]} from $ENV{'REMOTE_ADDR'}"); + InstantiateNewSession(); + $HTML::Mason::Commands::session{'CurrentUser'} = $user_obj; + $m->callback( %$ARGS, CallbackName => 'SuccessfulLogin', CallbackPage => '/autohandler' ); } =head2 LoadSessionFromCookie @@ -647,13 +497,6 @@ sub Redirect { untie $HTML::Mason::Commands::session; my $uri = URI->new($redir_to); my $server_uri = URI->new( RT->Config->Get('WebURL') ); - - # Make relative URIs absolute from the server host and scheme - $uri->scheme($server_uri->scheme) if not defined $uri->scheme; - if (not defined $uri->host) { - $uri->host($server_uri->host); - $uri->port($server_uri->port); - } # If the user is coming in via a non-canonical # hostname, don't redirect them to the canonical host, @@ -1502,8 +1345,6 @@ sub ParseDateToISO { sub ProcessACLChanges { my $ARGSref = shift; - #XXX: why don't we get ARGSref like in other Process* subs? - my @results; foreach my $arg ( keys %$ARGSref ) { @@ -1871,6 +1712,9 @@ sub _ProcessObjectCustomFieldUpdates { $values_hash{$val} = 1 if $val; } + # For Date Cfs, @values is empty when there is no changes (no datas in form input) + return @results if ( $cf->Type eq 'Date' && ! @values ); + $cf_values->RedoSearch; while ( my $cf_value = $cf_values->Next ) { next if $values_hash{ $cf_value->id }; diff --git a/rt/lib/RT/Interface/Web_Vendor.pm b/rt/lib/RT/Interface/Web_Vendor.pm new file mode 100644 index 000000000..1999096a7 --- /dev/null +++ b/rt/lib/RT/Interface/Web_Vendor.pm @@ -0,0 +1,201 @@ +# Copyright (c) 2004 Ivan Kohler <ivan-rt@420.am> +# Copyright (c) 2008 Freeside Internet Services, Inc. +# +# This work is made available to you under the terms of Version 2 of +# the GNU General Public License. A copy of that license should have +# been provided with this software, but in any event can be snarfed +# from www.gnu.org. +# +# This work 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. + +=head1 NAME + +RT::Interface::Web_Vendor + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +Freeside vendor overlay for RT::Interface::Web. + +=begin testing + +use_ok(RT::Interface::Web_Vendor); + +=end testing + +=cut + +#package RT::Interface::Web; +#use strict; + +package HTML::Mason::Commands; +use strict; + +=head2 ProcessTicketCustomers + +=cut + +sub ProcessTicketCustomers { + my %args = ( + TicketObj => undef, + ARGSRef => undef, + Debug => 0, + @_ + ); + my @results = (); + + my $Ticket = $args{'TicketObj'}; + my $ARGSRef = $args{'ARGSRef'}; + my $Debug = $args{'Debug'}; + my $me = 'ProcessTicketCustomers'; + + ### false laziness w/RT::Interface::Web::ProcessTicketLinks + # Delete links that are gone gone gone. + foreach my $arg ( keys %$ARGSRef ) { + if ( $arg =~ /DeleteLink-(.*?)-(DependsOn|MemberOf|RefersTo)-(.*)$/ ) { + my $base = $1; + my $type = $2; + my $target = $3; + + push @results, + "Trying to delete: Base: $base Target: $target Type $type"; + my ( $val, $msg ) = $Ticket->DeleteLink( Base => $base, + Type => $type, + Target => $target ); + + push @results, $msg; + + } + + } + ### + + ### + #find new customers + ### + + my @custnums = map { /^Ticket-AddCustomer-(\d+)$/; $1 } + grep { /^Ticket-AddCustomer-(\d+)$/ && $ARGSRef->{$_} } + keys %$ARGSRef; + + #my @delete_custnums = + # map { /^Ticket-AddCustomer-(\d+)$/; $1 } + # grep { /^Ticket-AddCustomer-(\d+)$/ && $ARGSRef->{$_} } + # keys %$ARGSRef; + + ### + #figure out if we're going to auto-link requestors, and find them if so + ### + + my $num_cur_cust = $Ticket->Customers->Count; + my $num_new_cust = scalar(@custnums); + warn "$me: $num_cur_cust current customers / $num_new_cust new customers\n" + if $Debug; + + #if we're linking the first ticket to one customer + my $link_requestors = ( $num_cur_cust == 0 && $num_new_cust == 1 ); + warn "$me: adding a single customer to a previously customerless". + " ticket, so linking customers to requestor too\n" + if $Debug && $link_requestors; + + my @Requestors = (); + if ( $link_requestors ) { + + #find any requestors without customers + @Requestors = + grep { ! $_->Customers->Count } + @{ $Ticket->Requestors->UserMembersObj->ItemsArrayRef }; + + warn "$me: found ". scalar(@Requestors). " requestors without". + " customers; linking them\n" + if $Debug; + + } + + ### + #link ticket (and requestors) to customers + ### + + foreach my $custnum ( @custnums ) { + + my @link = ( 'Type' => 'MemberOf', + 'Target' => "freeside://freeside/cust_main/$custnum", + ); + + my( $val, $msg ) = $Ticket->AddLink(@link); + push @results, $msg; + + #add customer links to requestors + foreach my $Requestor ( @Requestors ) { + my( $val, $msg ) = $Requestor->AddLink(@link); + push @results, $msg; + warn "$me: linking requestor to custnum $custnum: $msg\n" + if $Debug > 1; + } + + } + + return @results; + +} + +#false laziness w/above... eventually it should go away in favor of this +sub ProcessObjectCustomers { + my %args = ( + Object => undef, + ARGSRef => undef, + @_ + ); + my @results = (); + + my $Object = $args{'Object'}; + my $ARGSRef = $args{'ARGSRef'}; + + ### false laziness w/RT::Interface::Web::ProcessTicketLinks + # Delete links that are gone gone gone. + foreach my $arg ( keys %$ARGSRef ) { + if ( $arg =~ /DeleteLink-(.*?)-(DependsOn|MemberOf|RefersTo)-(.*)$/ ) { + my $base = $1; + my $type = $2; + my $target = $3; + + push @results, + "Trying to delete: Base: $base Target: $target Type $type"; + my ( $val, $msg ) = $Object->DeleteLink( Base => $base, + Type => $type, + Target => $target ); + + push @results, $msg; + + } + + } + ### + + #my @delete_custnums = + # map { /^Object-AddCustomer-(\d+)$/; $1 } + # grep { /^Object-AddCustomer-(\d+)$/ && $ARGSRef->{$_} } + # keys %$ARGSRef; + + my @custnums = map { /^Object-AddCustomer-(\d+)$/; $1 } + grep { /^Object-AddCustomer-(\d+)$/ && $ARGSRef->{$_} } + keys %$ARGSRef; + + foreach my $custnum ( @custnums ) { + my( $val, $msg ) = + $Object->AddLink( 'Type' => 'MemberOf', + 'Target' => "freeside://freeside/cust_main/$custnum", + ); + push @results, $msg; + } + + return @results; + +} + +1; + diff --git a/rt/lib/RT/Link.pm b/rt/lib/RT/Link.pm index 027962e5f..962c378a8 100644 --- a/rt/lib/RT/Link.pm +++ b/rt/lib/RT/Link.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -86,7 +61,7 @@ sub _Init { -=head2 Create PARAMHASH +=item Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -123,7 +98,7 @@ sub Create { -=head2 id +=item id Returns the current value of id. (In the database, id is stored as int(11).) @@ -132,14 +107,14 @@ Returns the current value of id. =cut -=head2 Base +=item Base Returns the current value of Base. (In the database, Base is stored as varchar(240).) -=head2 SetBase VALUE +=item SetBase VALUE Set Base to VALUE. @@ -150,14 +125,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Target +=item Target Returns the current value of Target. (In the database, Target is stored as varchar(240).) -=head2 SetTarget VALUE +=item SetTarget VALUE Set Target to VALUE. @@ -168,14 +143,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Type +=item Type Returns the current value of Type. (In the database, Type is stored as varchar(20).) -=head2 SetType VALUE +=item SetType VALUE Set Type to VALUE. @@ -186,14 +161,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 LocalTarget +=item LocalTarget Returns the current value of LocalTarget. (In the database, LocalTarget is stored as int(11).) -=head2 SetLocalTarget VALUE +=item SetLocalTarget VALUE Set LocalTarget to VALUE. @@ -204,14 +179,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 LocalBase +=item LocalBase Returns the current value of LocalBase. (In the database, LocalBase is stored as int(11).) -=head2 SetLocalBase VALUE +=item SetLocalBase VALUE Set LocalBase to VALUE. @@ -222,7 +197,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 LastUpdatedBy +=item LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -231,7 +206,7 @@ Returns the current value of LastUpdatedBy. =cut -=head2 LastUpdated +=item LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -240,7 +215,7 @@ Returns the current value of LastUpdated. =cut -=head2 Creator +=item Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -249,7 +224,7 @@ Returns the current value of Creator. =cut -=head2 Created +=item Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -259,29 +234,29 @@ Returns the current value of Created. -sub _CoreAccessible { +sub _ClassAccessible { { id => - {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, type => 'int(11)', default => ''}, Base => - {read => 1, write => 1, sql_type => 12, length => 240, is_blob => 0, is_numeric => 0, type => 'varchar(240)', default => ''}, + {read => 1, write => 1, type => 'varchar(240)', default => ''}, Target => - {read => 1, write => 1, sql_type => 12, length => 240, is_blob => 0, is_numeric => 0, type => 'varchar(240)', default => ''}, + {read => 1, write => 1, type => 'varchar(240)', default => ''}, Type => - {read => 1, write => 1, sql_type => 12, length => 20, is_blob => 0, is_numeric => 0, type => 'varchar(20)', default => ''}, + {read => 1, write => 1, type => 'varchar(20)', default => ''}, LocalTarget => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, LocalBase => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, LastUpdatedBy => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, Creator => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, } }; @@ -313,7 +288,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Links.pm b/rt/lib/RT/Links.pm index bd0b2971c..7a1773af9 100644 --- a/rt/lib/RT/Links.pm +++ b/rt/lib/RT/Links.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -89,7 +64,7 @@ sub _Init { } -=head2 NewItem +=item NewItem Returns an empty new RT::Link item @@ -126,7 +101,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Principal_Overlay.pm b/rt/lib/RT/Principal_Overlay.pm index 2ceca4622..42474f863 100644 --- a/rt/lib/RT/Principal_Overlay.pm +++ b/rt/lib/RT/Principal_Overlay.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} # @@ -163,6 +163,8 @@ sub GrantRight { my $type = $self->_GetPrincipalTypeForACL(); + RT->System->QueueCacheNeedsUpdate(1) if $args{'Right'} eq 'SeeQueue'; + # If it's a user, we really want to grant the right to their # user equivalence group return $ace->Create( @@ -210,6 +212,8 @@ sub RevokeRight { PrincipalType => $type, PrincipalId => $self->Id ); + + RT->System->QueueCacheNeedsUpdate(1) if $args{'Right'} eq 'SeeQueue'; return ($status, $msg) unless $status; return $ace->Delete; } diff --git a/rt/lib/RT/Queue.pm b/rt/lib/RT/Queue.pm index 7a8604685..b362c9f0d 100755 --- a/rt/lib/RT/Queue.pm +++ b/rt/lib/RT/Queue.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -86,7 +61,7 @@ sub _Init { -=head2 Create PARAMHASH +=item Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -132,7 +107,7 @@ sub Create { -=head2 id +=item id Returns the current value of id. (In the database, id is stored as int(11).) @@ -141,14 +116,14 @@ Returns the current value of id. =cut -=head2 Name +=item Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=head2 SetName VALUE +=item SetName VALUE Set Name to VALUE. @@ -159,14 +134,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Description +=item Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=head2 SetDescription VALUE +=item SetDescription VALUE Set Description to VALUE. @@ -177,14 +152,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 CorrespondAddress +=item CorrespondAddress Returns the current value of CorrespondAddress. (In the database, CorrespondAddress is stored as varchar(120).) -=head2 SetCorrespondAddress VALUE +=item SetCorrespondAddress VALUE Set CorrespondAddress to VALUE. @@ -195,14 +170,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 CommentAddress +=item CommentAddress Returns the current value of CommentAddress. (In the database, CommentAddress is stored as varchar(120).) -=head2 SetCommentAddress VALUE +=item SetCommentAddress VALUE Set CommentAddress to VALUE. @@ -213,14 +188,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 InitialPriority +=item InitialPriority Returns the current value of InitialPriority. (In the database, InitialPriority is stored as int(11).) -=head2 SetInitialPriority VALUE +=item SetInitialPriority VALUE Set InitialPriority to VALUE. @@ -231,14 +206,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 FinalPriority +=item FinalPriority Returns the current value of FinalPriority. (In the database, FinalPriority is stored as int(11).) -=head2 SetFinalPriority VALUE +=item SetFinalPriority VALUE Set FinalPriority to VALUE. @@ -249,14 +224,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 DefaultDueIn +=item DefaultDueIn Returns the current value of DefaultDueIn. (In the database, DefaultDueIn is stored as int(11).) -=head2 SetDefaultDueIn VALUE +=item SetDefaultDueIn VALUE Set DefaultDueIn to VALUE. @@ -267,7 +242,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Creator +=item Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -276,7 +251,7 @@ Returns the current value of Creator. =cut -=head2 Created +=item Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -285,7 +260,7 @@ Returns the current value of Created. =cut -=head2 LastUpdatedBy +=item LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -294,7 +269,7 @@ Returns the current value of LastUpdatedBy. =cut -=head2 LastUpdated +=item LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -303,14 +278,14 @@ Returns the current value of LastUpdated. =cut -=head2 Disabled +=item Disabled Returns the current value of Disabled. (In the database, Disabled is stored as smallint(6).) -=head2 SetDisabled VALUE +=item SetDisabled VALUE Set Disabled to VALUE. @@ -322,35 +297,35 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -sub _CoreAccessible { +sub _ClassAccessible { { id => - {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, type => 'int(11)', default => ''}, Name => - {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, type => 'varchar(200)', default => ''}, Description => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, type => 'varchar(255)', default => ''}, CorrespondAddress => - {read => 1, write => 1, sql_type => 12, length => 120, is_blob => 0, is_numeric => 0, type => 'varchar(120)', default => ''}, + {read => 1, write => 1, type => 'varchar(120)', default => ''}, CommentAddress => - {read => 1, write => 1, sql_type => 12, length => 120, is_blob => 0, is_numeric => 0, type => 'varchar(120)', default => ''}, + {read => 1, write => 1, type => 'varchar(120)', default => ''}, InitialPriority => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, FinalPriority => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, DefaultDueIn => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Creator => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, Disabled => - {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, + {read => 1, write => 1, type => 'smallint(6)', default => '0'}, } }; @@ -382,7 +357,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Queue_Local.pm b/rt/lib/RT/Queue_Local.pm new file mode 100644 index 000000000..6ebe2190a --- /dev/null +++ b/rt/lib/RT/Queue_Local.pm @@ -0,0 +1,72 @@ +package RT::Queue; + +use strict; +use warnings; + +# Adjust various saved settings that might have the old queue name in them. +# $changes{'AttributeName'} = sub (attribute, old queue name, new queue name) +# where the sub changes any reference to the old name to the new name +# returning a positive value on success, +# or (0, error string) if it fails somehow +# or -1 if the old name isn't found + +my %changes = ( + 'SavedSearch' => sub { + my ($attr, $old, $new) = @_; + # Deal with queue names containing single quotes. + $old =~ s/'/\\'/g; + $new =~ s/'/\\'/g; + my $string = $attr->SubValue('Query'); + # Deal with queue names containing regex metacharacters. + if ( $string =~ s/Queue\W+\K'\Q$old\E'/'$new'/ ) { + return $attr->SetSubValues(Query => $string); + } + -1; + }, + 'Pref-QuickSearch' => sub { + my ($attr, $old, $new) = @_; + my $x = $attr->SubValue($old); + return -1 if !defined($x); + my @err = $attr->DeleteSubValue($old); + return @err if !$err[0]; + return $attr->SetSubValues($new => $x); + }, +); + +sub SetName { + my $self = shift; + my $new = shift; + + # We may potentially change anything at all. + unless ( $self->CurrentUser->HasRight( + Right => 'SuperUser', Object => 'RT::System' ) + ) { + return ( 0, $self->loc("SuperUser access required to rename queues") ); + } + + $RT::Handle->BeginTransaction(); + my $old = $self->Name; + my ($err, $msg) = $self->SUPER::SetName($new); + unless ($err) { + $RT::Handle->Rollback; + return (0, "Unable to rename queue to '$new': $msg"); + } + foreach my $attrname (keys %changes) { + my $Attributes = RT::Attributes->new($self->CurrentUser); + $Attributes->UnLimit; + foreach my $attr ( $Attributes->Named($attrname) ) { + ($err, $msg) = &{ $changes{$attrname} }($attr, $old, $new); + unless ($err) { + $RT::Handle->Rollback; + return (0, "Unable to change attribute $attrname - ". + $attr->Description. ": $msg"); + } + } + } + RT->System->QueueCacheNeedsUpdate(1); + $RT::Handle->Commit; + return 1, "Name changed from '$old' to '$new'"; +} + + +1; diff --git a/rt/lib/RT/Queue_Overlay.pm b/rt/lib/RT/Queue_Overlay.pm index c7ab7f354..dcca84eb4 100644 --- a/rt/lib/RT/Queue_Overlay.pm +++ b/rt/lib/RT/Queue_Overlay.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} =head1 NAME @@ -381,6 +381,8 @@ sub Create { unless $status; } + RT->System->QueueCacheNeedsUpdate(1); + return ( $id, $self->loc("Queue created") ); } @@ -421,6 +423,8 @@ sub SetDisabled { $RT::Handle->Commit(); + RT->System->QueueCacheNeedsUpdate(1); + if ( $val == 1 ) { return (1, $self->loc("Queue disabled")); } else { diff --git a/rt/lib/RT/Queues.pm b/rt/lib/RT/Queues.pm index 4b4c67825..60aec9086 100755 --- a/rt/lib/RT/Queues.pm +++ b/rt/lib/RT/Queues.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -89,7 +64,7 @@ sub _Init { } -=head2 NewItem +=item NewItem Returns an empty new RT::Queue item @@ -126,7 +101,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Record.pm b/rt/lib/RT/Record.pm index 804adb876..78bbe915d 100755 --- a/rt/lib/RT/Record.pm +++ b/rt/lib/RT/Record.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} =head1 NAME @@ -67,6 +67,7 @@ use strict; use warnings; use RT::Date; +use RT::I18N; use RT::User; use RT::Attributes; use Encode qw(); @@ -723,7 +724,7 @@ Takes a potentially large attachment. Returns (ContentEncoding, EncodedBody) bas sub _EncodeLOB { my $self = shift; my $Body = shift; - my $MIMEType = shift || ''; + my $MIMEType = shift; my $ContentEncoding = 'none'; @@ -803,6 +804,7 @@ sub _DecodeLOB { elsif ( $ContentEncoding && $ContentEncoding ne 'none' ) { return ( $self->loc( "Unknown ContentEncoding [_1]", $ContentEncoding ) ); } + if ( RT::I18N::IsTextualContentType($ContentType) ) { $Content = Encode::decode_utf8($Content) unless Encode::is_utf8($Content); } @@ -1171,8 +1173,37 @@ sub DependsOn { # }}} +# {{{ Customers + +=head2 Customers + This returns an RT::Links object which references all the customers that this object is a member of. + +=cut +sub Customers { + my( $self, %opt ) = @_; + my $Debug = $opt{'Debug'}; + + unless ( $self->{'Customers'} ) { + + $self->{'Customers'} = $self->MemberOf->Clone; + + $self->{'Customers'}->Limit( + FIELD => 'Target', + OPERATOR => 'STARTSWITH', + VALUE => 'freeside://freeside/cust_main/', + ); + } + + warn "->Customers method called on $self; returning ". + ref($self->{'Customers'}). ' object' + if $Debug; + + return $self->{'Customers'}; +} + +# }}} # {{{ sub _Links @@ -1713,6 +1744,25 @@ sub _AddCustomFieldValue { } my $new_content = $new_value->Content; + + # For date, we need to display them in "human" format in result message + if ($cf->Type eq 'Date') { + my $DateObj = new RT::Date( $self->CurrentUser ); + $DateObj->Set( + Format => 'ISO', + Value => $new_content, + ); + $new_content = $DateObj->AsString; + + if ( defined $old_content && length $old_content ) { + $DateObj->Set( + Format => 'ISO', + Value => $old_content, + ); + $old_content = $DateObj->AsString; + } + } + unless ( defined $old_content && length $old_content ) { return ( $new_value_id, $self->loc( "[_1] [_2] added", $cf->Name, $new_content )); } @@ -1801,11 +1851,21 @@ sub DeleteCustomFieldValue { return ( 0, $self->loc( "Couldn't create a transaction: [_1]", $Msg ) ); } + my $old_value = $TransactionObj->OldValue; + # For date, we need to display them in "human" format in result message + if ( $cf->Type eq 'Date' ) { + my $DateObj = new RT::Date( $self->CurrentUser ); + $DateObj->Set( + Format => 'ISO', + Value => $old_value, + ); + $old_value = $DateObj->AsString; + } return ( $TransactionId, $self->loc( "[_1] is no longer a value for custom field [_2]", - $TransactionObj->OldValue, $cf->Name + $old_value, $cf->Name ) ); } diff --git a/rt/lib/RT/SavedSearches_Local.pm b/rt/lib/RT/SavedSearches_Local.pm new file mode 100644 index 000000000..7159bc912 --- /dev/null +++ b/rt/lib/RT/SavedSearches_Local.pm @@ -0,0 +1,19 @@ +# backport from RT4 RT::SharedSettings + +package RT::SavedSearches; + +use strict; +no warnings 'redefine'; + +sub CountAll { + my $self = shift; + return $self->Count; +} + +sub GotoPage { + my $self = shift; + $self->{idx} = shift; +} + +1; + diff --git a/rt/lib/RT/Scrip.pm b/rt/lib/RT/Scrip.pm index 4333f239f..a69dde04e 100755 --- a/rt/lib/RT/Scrip.pm +++ b/rt/lib/RT/Scrip.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -90,7 +65,7 @@ sub _Init { -=head2 Create PARAMHASH +=item Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -145,7 +120,7 @@ sub Create { -=head2 id +=item id Returns the current value of id. (In the database, id is stored as int(11).) @@ -154,14 +129,14 @@ Returns the current value of id. =cut -=head2 Description +=item Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=head2 SetDescription VALUE +=item SetDescription VALUE Set Description to VALUE. @@ -172,14 +147,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ScripCondition +=item ScripCondition Returns the current value of ScripCondition. (In the database, ScripCondition is stored as int(11).) -=head2 SetScripCondition VALUE +=item SetScripCondition VALUE Set ScripCondition to VALUE. @@ -190,7 +165,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ScripConditionObj +=item ScripConditionObj Returns the ScripCondition Object which has the id returned by ScripCondition @@ -204,14 +179,14 @@ sub ScripConditionObj { return($ScripCondition); } -=head2 ScripAction +=item ScripAction Returns the current value of ScripAction. (In the database, ScripAction is stored as int(11).) -=head2 SetScripAction VALUE +=item SetScripAction VALUE Set ScripAction to VALUE. @@ -222,7 +197,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ScripActionObj +=item ScripActionObj Returns the ScripAction Object which has the id returned by ScripAction @@ -236,14 +211,14 @@ sub ScripActionObj { return($ScripAction); } -=head2 ConditionRules +=item ConditionRules Returns the current value of ConditionRules. (In the database, ConditionRules is stored as text.) -=head2 SetConditionRules VALUE +=item SetConditionRules VALUE Set ConditionRules to VALUE. @@ -254,14 +229,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ActionRules +=item ActionRules Returns the current value of ActionRules. (In the database, ActionRules is stored as text.) -=head2 SetActionRules VALUE +=item SetActionRules VALUE Set ActionRules to VALUE. @@ -272,14 +247,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 CustomIsApplicableCode +=item CustomIsApplicableCode Returns the current value of CustomIsApplicableCode. (In the database, CustomIsApplicableCode is stored as text.) -=head2 SetCustomIsApplicableCode VALUE +=item SetCustomIsApplicableCode VALUE Set CustomIsApplicableCode to VALUE. @@ -290,14 +265,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 CustomPrepareCode +=item CustomPrepareCode Returns the current value of CustomPrepareCode. (In the database, CustomPrepareCode is stored as text.) -=head2 SetCustomPrepareCode VALUE +=item SetCustomPrepareCode VALUE Set CustomPrepareCode to VALUE. @@ -308,14 +283,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 CustomCommitCode +=item CustomCommitCode Returns the current value of CustomCommitCode. (In the database, CustomCommitCode is stored as text.) -=head2 SetCustomCommitCode VALUE +=item SetCustomCommitCode VALUE Set CustomCommitCode to VALUE. @@ -326,14 +301,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Stage +=item Stage Returns the current value of Stage. (In the database, Stage is stored as varchar(32).) -=head2 SetStage VALUE +=item SetStage VALUE Set Stage to VALUE. @@ -344,14 +319,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Queue +=item Queue Returns the current value of Queue. (In the database, Queue is stored as int(11).) -=head2 SetQueue VALUE +=item SetQueue VALUE Set Queue to VALUE. @@ -362,7 +337,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 QueueObj +=item QueueObj Returns the Queue Object which has the id returned by Queue @@ -376,14 +351,14 @@ sub QueueObj { return($Queue); } -=head2 Template +=item Template Returns the current value of Template. (In the database, Template is stored as int(11).) -=head2 SetTemplate VALUE +=item SetTemplate VALUE Set Template to VALUE. @@ -394,7 +369,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 TemplateObj +=item TemplateObj Returns the Template Object which has the id returned by Template @@ -408,7 +383,7 @@ sub TemplateObj { return($Template); } -=head2 Creator +=item Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -417,7 +392,7 @@ Returns the current value of Creator. =cut -=head2 Created +=item Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -426,7 +401,7 @@ Returns the current value of Created. =cut -=head2 LastUpdatedBy +=item LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -435,7 +410,7 @@ Returns the current value of LastUpdatedBy. =cut -=head2 LastUpdated +=item LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -445,41 +420,41 @@ Returns the current value of LastUpdated. -sub _CoreAccessible { +sub _ClassAccessible { { id => - {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, type => 'int(11)', default => ''}, Description => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, type => 'varchar(255)', default => ''}, ScripCondition => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, ScripAction => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, ConditionRules => - {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, + {read => 1, write => 1, type => 'text', default => ''}, ActionRules => - {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, + {read => 1, write => 1, type => 'text', default => ''}, CustomIsApplicableCode => - {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, + {read => 1, write => 1, type => 'text', default => ''}, CustomPrepareCode => - {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, + {read => 1, write => 1, type => 'text', default => ''}, CustomCommitCode => - {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, + {read => 1, write => 1, type => 'text', default => ''}, Stage => - {read => 1, write => 1, sql_type => 12, length => 32, is_blob => 0, is_numeric => 0, type => 'varchar(32)', default => ''}, + {read => 1, write => 1, type => 'varchar(32)', default => ''}, Queue => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Template => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Creator => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, } }; @@ -511,7 +486,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/ScripAction.pm b/rt/lib/RT/ScripAction.pm index 9afcb8426..26824df5d 100755 --- a/rt/lib/RT/ScripAction.pm +++ b/rt/lib/RT/ScripAction.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -86,7 +61,7 @@ sub _Init { -=head2 Create PARAMHASH +=item Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -120,7 +95,7 @@ sub Create { -=head2 id +=item id Returns the current value of id. (In the database, id is stored as int(11).) @@ -129,14 +104,14 @@ Returns the current value of id. =cut -=head2 Name +=item Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=head2 SetName VALUE +=item SetName VALUE Set Name to VALUE. @@ -147,14 +122,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Description +=item Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=head2 SetDescription VALUE +=item SetDescription VALUE Set Description to VALUE. @@ -165,14 +140,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ExecModule +=item ExecModule Returns the current value of ExecModule. (In the database, ExecModule is stored as varchar(60).) -=head2 SetExecModule VALUE +=item SetExecModule VALUE Set ExecModule to VALUE. @@ -183,14 +158,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Argument +=item Argument Returns the current value of Argument. (In the database, Argument is stored as varchar(255).) -=head2 SetArgument VALUE +=item SetArgument VALUE Set Argument to VALUE. @@ -201,7 +176,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Creator +=item Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -210,7 +185,7 @@ Returns the current value of Creator. =cut -=head2 Created +=item Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -219,7 +194,7 @@ Returns the current value of Created. =cut -=head2 LastUpdatedBy +=item LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -228,7 +203,7 @@ Returns the current value of LastUpdatedBy. =cut -=head2 LastUpdated +=item LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -238,27 +213,27 @@ Returns the current value of LastUpdated. -sub _CoreAccessible { +sub _ClassAccessible { { id => - {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, type => 'int(11)', default => ''}, Name => - {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, type => 'varchar(200)', default => ''}, Description => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, type => 'varchar(255)', default => ''}, ExecModule => - {read => 1, write => 1, sql_type => 12, length => 60, is_blob => 0, is_numeric => 0, type => 'varchar(60)', default => ''}, + {read => 1, write => 1, type => 'varchar(60)', default => ''}, Argument => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, type => 'varchar(255)', default => ''}, Creator => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, } }; @@ -290,7 +265,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/ScripActions.pm b/rt/lib/RT/ScripActions.pm index c1f8efd2b..614ff374f 100755 --- a/rt/lib/RT/ScripActions.pm +++ b/rt/lib/RT/ScripActions.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -89,7 +64,7 @@ sub _Init { } -=head2 NewItem +=item NewItem Returns an empty new RT::ScripAction item @@ -126,7 +101,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/ScripCondition.pm b/rt/lib/RT/ScripCondition.pm index a4cb26884..fe0aa2d5a 100755 --- a/rt/lib/RT/ScripCondition.pm +++ b/rt/lib/RT/ScripCondition.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -86,7 +61,7 @@ sub _Init { -=head2 Create PARAMHASH +=item Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -123,7 +98,7 @@ sub Create { -=head2 id +=item id Returns the current value of id. (In the database, id is stored as int(11).) @@ -132,14 +107,14 @@ Returns the current value of id. =cut -=head2 Name +=item Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=head2 SetName VALUE +=item SetName VALUE Set Name to VALUE. @@ -150,14 +125,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Description +=item Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=head2 SetDescription VALUE +=item SetDescription VALUE Set Description to VALUE. @@ -168,14 +143,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ExecModule +=item ExecModule Returns the current value of ExecModule. (In the database, ExecModule is stored as varchar(60).) -=head2 SetExecModule VALUE +=item SetExecModule VALUE Set ExecModule to VALUE. @@ -186,14 +161,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Argument +=item Argument Returns the current value of Argument. (In the database, Argument is stored as varchar(255).) -=head2 SetArgument VALUE +=item SetArgument VALUE Set Argument to VALUE. @@ -204,14 +179,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ApplicableTransTypes +=item ApplicableTransTypes Returns the current value of ApplicableTransTypes. (In the database, ApplicableTransTypes is stored as varchar(60).) -=head2 SetApplicableTransTypes VALUE +=item SetApplicableTransTypes VALUE Set ApplicableTransTypes to VALUE. @@ -222,7 +197,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Creator +=item Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -231,7 +206,7 @@ Returns the current value of Creator. =cut -=head2 Created +=item Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -240,7 +215,7 @@ Returns the current value of Created. =cut -=head2 LastUpdatedBy +=item LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -249,7 +224,7 @@ Returns the current value of LastUpdatedBy. =cut -=head2 LastUpdated +=item LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -259,29 +234,29 @@ Returns the current value of LastUpdated. -sub _CoreAccessible { +sub _ClassAccessible { { id => - {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, type => 'int(11)', default => ''}, Name => - {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, type => 'varchar(200)', default => ''}, Description => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, type => 'varchar(255)', default => ''}, ExecModule => - {read => 1, write => 1, sql_type => 12, length => 60, is_blob => 0, is_numeric => 0, type => 'varchar(60)', default => ''}, + {read => 1, write => 1, type => 'varchar(60)', default => ''}, Argument => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, type => 'varchar(255)', default => ''}, ApplicableTransTypes => - {read => 1, write => 1, sql_type => 12, length => 60, is_blob => 0, is_numeric => 0, type => 'varchar(60)', default => ''}, + {read => 1, write => 1, type => 'varchar(60)', default => ''}, Creator => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, } }; @@ -313,7 +288,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/ScripConditions.pm b/rt/lib/RT/ScripConditions.pm index 828e5f414..34f788d9c 100755 --- a/rt/lib/RT/ScripConditions.pm +++ b/rt/lib/RT/ScripConditions.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -89,7 +64,7 @@ sub _Init { } -=head2 NewItem +=item NewItem Returns an empty new RT::ScripCondition item @@ -126,7 +101,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Scrip_Overlay.pm b/rt/lib/RT/Scrip_Overlay.pm index 3c89f84f2..b5beb3434 100644 --- a/rt/lib/RT/Scrip_Overlay.pm +++ b/rt/lib/RT/Scrip_Overlay.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} =head1 NAME @@ -103,6 +103,8 @@ sub Create { CustomPrepareCode => undef, CustomCommitCode => undef, CustomIsApplicableCode => undef, + ConditionRules => undef, + ActionRules => undef, @_ ); @@ -162,6 +164,8 @@ sub Create { CustomPrepareCode => $args{'CustomPrepareCode'}, CustomCommitCode => $args{'CustomCommitCode'}, CustomIsApplicableCode => $args{'CustomIsApplicableCode'}, + ConditionRules => $args{'ConditionRules'}, + ActionRules => $args{'ActionRules'}, ); if ( $id ) { return ( $id, $self->loc('Scrip Created') ); @@ -584,65 +588,5 @@ sub HasRight { # }}} - -=head2 SetScripAction - -=cut - -sub SetScripAction { - my $self = shift; - my $value = shift; - - return ( 0, $self->loc("Action is mandatory argument") ) unless $value; - - require RT::ScripAction; - my $action = RT::ScripAction->new( $self->CurrentUser ); - $action->Load($value); - return ( 0, $self->loc( "Action '[_1]' not found", $value ) ) - unless $action->Id; - - return $self->_Set( Field => 'ScripAction', Value => $action->Id ); -} - -=head2 SetScripCondition - -=cut - -sub SetScripCondition { - my $self = shift; - my $value = shift; - - return ( 0, $self->loc("Condition is mandatory argument") ) - unless $value; - - require RT::ScripCondition; - my $condition = RT::ScripCondition->new( $self->CurrentUser ); - $condition->Load($value); - - return ( 0, $self->loc( "Condition '[_1]' not found", $value ) ) - unless $condition->Id; - - return $self->_Set( Field => 'ScripCondition', Value => $condition->Id ); -} - -=head2 SetTemplate - -=cut - -sub SetTemplate { - my $self = shift; - my $value = shift; - - return ( 0, $self->loc("Template is mandatory argument") ) unless $value; - - require RT::Template; - my $template = RT::Template->new( $self->CurrentUser ); - $template->Load($value); - return ( 0, $self->loc( "Template '[_1]' not found", $value ) ) - unless $template->Id; - - return $self->_Set( Field => 'Template', Value => $template->Id ); -} - 1; diff --git a/rt/lib/RT/Scrips.pm b/rt/lib/RT/Scrips.pm index 5b05e0ba0..a39443136 100755 --- a/rt/lib/RT/Scrips.pm +++ b/rt/lib/RT/Scrips.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -89,7 +64,7 @@ sub _Init { } -=head2 NewItem +=item NewItem Returns an empty new RT::Scrip item @@ -126,7 +101,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/SearchBuilder.pm b/rt/lib/RT/SearchBuilder.pm index a078a310a..671d880c7 100644 --- a/rt/lib/RT/SearchBuilder.pm +++ b/rt/lib/RT/SearchBuilder.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} =head1 NAME @@ -65,7 +65,7 @@ package RT::SearchBuilder; use RT::Base; -use DBIx::SearchBuilder "1.40"; +use DBIx::SearchBuilder "1.50"; use strict; use warnings; diff --git a/rt/lib/RT/System.pm b/rt/lib/RT/System.pm index 6ba5d1ad7..e61e35f27 100644 --- a/rt/lib/RT/System.pm +++ b/rt/lib/RT/System.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} =head1 NAME @@ -189,6 +189,28 @@ sub SubjectTag { return grep !$seen{lc $_}++, values %$map; } +=head2 QueueCacheNeedsUpdate ( 1 ) + +Attribute to decide when SelectQueue needs to flush the list of queues + and retrieve new ones. Set when queues are created, enabled/disabled + and on certain acl changes. Should also better understand group management. + +If passed a true value, will update the attribute to be the current time. + +=cut + +sub QueueCacheNeedsUpdate { + my $self = shift; + my $update = shift; + + if ($update) { + return $self->SetAttribute(Name => 'QueueCacheNeedsUpdate', Content => time); + } else { + my $cache = $self->FirstAttribute('QueueCacheNeedsUpdate'); + return (defined $cache ? $cache->Content : 0 ); + } +} + eval "require RT::System_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/System_Vendor.pm}); eval "require RT::System_Local"; diff --git a/rt/lib/RT/Template.pm b/rt/lib/RT/Template.pm index 12d0fc923..f73ea3ed6 100755 --- a/rt/lib/RT/Template.pm +++ b/rt/lib/RT/Template.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -87,7 +62,7 @@ sub _Init { -=head2 Create PARAMHASH +=item Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -130,7 +105,7 @@ sub Create { -=head2 id +=item id Returns the current value of id. (In the database, id is stored as int(11).) @@ -139,14 +114,14 @@ Returns the current value of id. =cut -=head2 Queue +=item Queue Returns the current value of Queue. (In the database, Queue is stored as int(11).) -=head2 SetQueue VALUE +=item SetQueue VALUE Set Queue to VALUE. @@ -157,7 +132,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 QueueObj +=item QueueObj Returns the Queue Object which has the id returned by Queue @@ -171,14 +146,14 @@ sub QueueObj { return($Queue); } -=head2 Name +=item Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=head2 SetName VALUE +=item SetName VALUE Set Name to VALUE. @@ -189,14 +164,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Description +=item Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=head2 SetDescription VALUE +=item SetDescription VALUE Set Description to VALUE. @@ -207,14 +182,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Type +=item Type Returns the current value of Type. (In the database, Type is stored as varchar(16).) -=head2 SetType VALUE +=item SetType VALUE Set Type to VALUE. @@ -225,14 +200,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Language +=item Language Returns the current value of Language. (In the database, Language is stored as varchar(16).) -=head2 SetLanguage VALUE +=item SetLanguage VALUE Set Language to VALUE. @@ -243,14 +218,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 TranslationOf +=item TranslationOf Returns the current value of TranslationOf. (In the database, TranslationOf is stored as int(11).) -=head2 SetTranslationOf VALUE +=item SetTranslationOf VALUE Set TranslationOf to VALUE. @@ -261,14 +236,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Content +=item Content Returns the current value of Content. (In the database, Content is stored as blob.) -=head2 SetContent VALUE +=item SetContent VALUE Set Content to VALUE. @@ -279,7 +254,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 LastUpdated +=item LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -288,7 +263,7 @@ Returns the current value of LastUpdated. =cut -=head2 LastUpdatedBy +=item LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -297,7 +272,7 @@ Returns the current value of LastUpdatedBy. =cut -=head2 Creator +=item Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -306,7 +281,7 @@ Returns the current value of Creator. =cut -=head2 Created +=item Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -316,33 +291,33 @@ Returns the current value of Created. -sub _CoreAccessible { +sub _ClassAccessible { { id => - {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, type => 'int(11)', default => ''}, Queue => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Name => - {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, type => 'varchar(200)', default => ''}, Description => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, type => 'varchar(255)', default => ''}, Type => - {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, type => 'varchar(16)', default => ''}, Language => - {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, type => 'varchar(16)', default => ''}, TranslationOf => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Content => - {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'blob', default => ''}, + {read => 1, write => 1, type => 'blob', default => ''}, LastUpdated => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, Creator => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, } }; @@ -374,7 +349,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Templates.pm b/rt/lib/RT/Templates.pm index 0432ffa5e..37db84086 100755 --- a/rt/lib/RT/Templates.pm +++ b/rt/lib/RT/Templates.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -89,7 +64,7 @@ sub _Init { } -=head2 NewItem +=item NewItem Returns an empty new RT::Template item @@ -126,7 +101,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Test.pm b/rt/lib/RT/Test.pm index 7c63137a6..64b736fad 100644 --- a/rt/lib/RT/Test.pm +++ b/rt/lib/RT/Test.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} package RT::Test; @@ -221,10 +221,12 @@ sub bootstrap_config { or die "Couldn't open $tmp{'config'}{'RT'}: $!"; print $config qq{ -Set( \$WebDomain, "localhost"); -Set( \$WebPort, $port); -Set( \$WebPath, ""); +Set( \$WebPort , $port); +Set( \$WebBaseURL , "http://localhost:\$WebPort"); +Set( \$LogToSyslog , undef); +Set( \$LogToScreen , "warning"); Set( \$RTAddressRegexp , qr/^bad_re_that_doesnt_match\$/); +Set( \$MailCommand, 'testfile'); }; if ( $ENV{'RT_TEST_DB_SID'} ) { # oracle case print $config "Set( \$DatabaseName , '$ENV{'RT_TEST_DB_SID'}' );\n"; @@ -236,8 +238,6 @@ Set( \$RTAddressRegexp , qr/^bad_re_that_doesnt_match\$/); print $config "Set( \$DevelMode, 0 );\n" if $INC{'Devel/Cover.pm'}; - $self->bootstrap_logging( $config ); - # set mail catcher my $mail_catcher = $tmp{'mailbox'} = File::Spec->catfile( $tmp{'directory'}->dirname, 'mailbox.eml' @@ -254,7 +254,7 @@ Set( \$MailCommand, sub { close \$handle; } ); END - + print $config $args{'config'} if $args{'config'}; print $config "\n1;\n"; @@ -264,29 +264,6 @@ END return $config; } -sub bootstrap_logging { - my $self = shift; - my $config = shift; - - # prepare file for logging - $tmp{'log'}{'RT'} = File::Spec->catfile( - "$tmp{'directory'}", 'rt.debug.log' - ); - open my $fh, '>', $tmp{'log'}{'RT'} - or die "Couldn't open $tmp{'config'}{'RT'}: $!"; - # make world writable so apache under different user - # can write into it - chmod 0666, $tmp{'log'}{'RT'}; - - print $config <<END; -Set( \$LogToSyslog , undef); -Set( \$LogToScreen , "warning"); -Set( \$LogToFile, 'debug' ); -Set( \$LogDir, q{$tmp{'directory'}} ); -Set( \$LogToFileNamed, 'rt.debug.log' ); -END -} - sub set_config_wrapper { my $self = shift; @@ -412,12 +389,6 @@ sub bootstrap_plugins { RT->Config->Set( Plugins => @plugins ); RT->InitPluginPaths; - my $dba_dbh; - $dba_dbh = _get_dbh( - RT::Handle->DSN, - $ENV{RT_DBA_USER}, $ENV{RT_DBA_PASSWORD}, - ) if @plugins; - require File::Spec; foreach my $name ( @plugins ) { my $plugin = RT::Plugin->new( name => $name ); @@ -429,10 +400,10 @@ sub bootstrap_plugins { if $ENV{'TEST_VERBOSE'}; if ( -e $etc_path ) { - my ($ret, $msg) = $RT::Handle->InsertSchema( $dba_dbh, $etc_path ); + my ($ret, $msg) = $RT::Handle->InsertSchema( undef, $etc_path ); Test::More::ok($ret || $msg =~ /^Couldn't find schema/, "Created schema: ".($msg||'')); - ($ret, $msg) = $RT::Handle->InsertACL( $dba_dbh, $etc_path ); + ($ret, $msg) = $RT::Handle->InsertACL( undef, $etc_path ); Test::More::ok($ret || $msg =~ /^Couldn't find ACLs/, "Created ACL: ".($msg||'')); my $data_file = File::Spec->catfile( $etc_path, 'initialdata' ); @@ -452,7 +423,6 @@ sub bootstrap_plugins { $RT::Handle->Connect; # XXX: strange but mysql can loose connection } - $dba_dbh->disconnect if $dba_dbh; } sub _get_dbh { @@ -717,8 +687,6 @@ sub run_and_capture { my $self = shift; my %args = @_; - my $after_open = delete $args{after_open}; - my $cmd = delete $args{'command'}; die "Couldn't find command ($cmd)" unless -f $cmd; @@ -736,7 +704,7 @@ sub run_and_capture { my ($child_out, $child_in); my $pid = IPC::Open2::open2($child_out, $child_in, $cmd); - $after_open->($child_in, $child_out) if $after_open; + $args{after_open}->($child_in, $child_out) if $args{after_open}; close $child_in; @@ -1059,6 +1027,9 @@ sub start_standalone_server { $RT::Handle->dbh( undef ); RT->ConnectToDatabase; + # the attribute cache holds on to a stale dbh + delete $RT::System->{attributes}; + return ($ret, RT::Test::Web->new); } diff --git a/rt/lib/RT/Ticket.pm b/rt/lib/RT/Ticket.pm index def72367f..2f075a20c 100755 --- a/rt/lib/RT/Ticket.pm +++ b/rt/lib/RT/Ticket.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -87,7 +62,7 @@ sub _Init { -=head2 Create PARAMHASH +=item Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -141,7 +116,7 @@ sub Create { Resolved => '', Disabled => '0', - @_); + @_); $self->SUPER::Create( EffectiveId => $args{'EffectiveId'}, Queue => $args{'Queue'}, @@ -169,7 +144,7 @@ sub Create { -=head2 id +=item id Returns the current value of id. (In the database, id is stored as int(11).) @@ -178,14 +153,14 @@ Returns the current value of id. =cut -=head2 EffectiveId +=item EffectiveId Returns the current value of EffectiveId. (In the database, EffectiveId is stored as int(11).) -=head2 SetEffectiveId VALUE +=item SetEffectiveId VALUE Set EffectiveId to VALUE. @@ -196,14 +171,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Queue +=item Queue Returns the current value of Queue. (In the database, Queue is stored as int(11).) -=head2 SetQueue VALUE +=item SetQueue VALUE Set Queue to VALUE. @@ -214,7 +189,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 QueueObj +=item QueueObj Returns the Queue Object which has the id returned by Queue @@ -222,22 +197,20 @@ Returns the Queue Object which has the id returned by Queue =cut sub QueueObj { - my $self = shift; - my $Queue = RT::Queue->new($self->CurrentUser); - $Queue->Load($self->__Value('Queue')); - return($Queue); + my $self = shift; + my $Queue = RT::Queue->new($self->CurrentUser); + $Queue->Load($self->__Value('Queue')); + return($Queue); } - - -=head2 Type +=item Type Returns the current value of Type. (In the database, Type is stored as varchar(16).) -=head2 SetType VALUE +=item SetType VALUE Set Type to VALUE. @@ -248,14 +221,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 IssueStatement +=item IssueStatement Returns the current value of IssueStatement. (In the database, IssueStatement is stored as int(11).) -=head2 SetIssueStatement VALUE +=item SetIssueStatement VALUE Set IssueStatement to VALUE. @@ -266,14 +239,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Resolution +=item Resolution Returns the current value of Resolution. (In the database, Resolution is stored as int(11).) -=head2 SetResolution VALUE +=item SetResolution VALUE Set Resolution to VALUE. @@ -284,14 +257,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Owner +=item Owner Returns the current value of Owner. (In the database, Owner is stored as int(11).) -=head2 SetOwner VALUE +=item SetOwner VALUE Set Owner to VALUE. @@ -302,14 +275,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Subject +=item Subject Returns the current value of Subject. (In the database, Subject is stored as varchar(200).) -=head2 SetSubject VALUE +=item SetSubject VALUE Set Subject to VALUE. @@ -320,14 +293,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 InitialPriority +=item InitialPriority Returns the current value of InitialPriority. (In the database, InitialPriority is stored as int(11).) -=head2 SetInitialPriority VALUE +=item SetInitialPriority VALUE Set InitialPriority to VALUE. @@ -338,14 +311,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 FinalPriority +=item FinalPriority Returns the current value of FinalPriority. (In the database, FinalPriority is stored as int(11).) -=head2 SetFinalPriority VALUE +=item SetFinalPriority VALUE Set FinalPriority to VALUE. @@ -356,14 +329,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Priority +=item Priority Returns the current value of Priority. (In the database, Priority is stored as int(11).) -=head2 SetPriority VALUE +=item SetPriority VALUE Set Priority to VALUE. @@ -374,14 +347,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 TimeEstimated +=item TimeEstimated Returns the current value of TimeEstimated. (In the database, TimeEstimated is stored as int(11).) -=head2 SetTimeEstimated VALUE +=item SetTimeEstimated VALUE Set TimeEstimated to VALUE. @@ -392,14 +365,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 TimeWorked +=item TimeWorked Returns the current value of TimeWorked. (In the database, TimeWorked is stored as int(11).) -=head2 SetTimeWorked VALUE +=item SetTimeWorked VALUE Set TimeWorked to VALUE. @@ -410,14 +383,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Status +=item Status Returns the current value of Status. (In the database, Status is stored as varchar(10).) -=head2 SetStatus VALUE +=item SetStatus VALUE Set Status to VALUE. @@ -428,14 +401,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 TimeLeft +=item TimeLeft Returns the current value of TimeLeft. (In the database, TimeLeft is stored as int(11).) -=head2 SetTimeLeft VALUE +=item SetTimeLeft VALUE Set TimeLeft to VALUE. @@ -446,14 +419,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Told +=item Told Returns the current value of Told. (In the database, Told is stored as datetime.) -=head2 SetTold VALUE +=item SetTold VALUE Set Told to VALUE. @@ -464,14 +437,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Starts +=item Starts Returns the current value of Starts. (In the database, Starts is stored as datetime.) -=head2 SetStarts VALUE +=item SetStarts VALUE Set Starts to VALUE. @@ -482,14 +455,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Started +=item Started Returns the current value of Started. (In the database, Started is stored as datetime.) -=head2 SetStarted VALUE +=item SetStarted VALUE Set Started to VALUE. @@ -500,14 +473,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Due +=item Due Returns the current value of Due. (In the database, Due is stored as datetime.) -=head2 SetDue VALUE +=item SetDue VALUE Set Due to VALUE. @@ -518,14 +491,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Resolved +=item Resolved Returns the current value of Resolved. (In the database, Resolved is stored as datetime.) -=head2 SetResolved VALUE +=item SetResolved VALUE Set Resolved to VALUE. @@ -536,7 +509,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 LastUpdatedBy +=item LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -545,7 +518,7 @@ Returns the current value of LastUpdatedBy. =cut -=head2 LastUpdated +=item LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -554,7 +527,7 @@ Returns the current value of LastUpdated. =cut -=head2 Creator +=item Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -563,7 +536,7 @@ Returns the current value of Creator. =cut -=head2 Created +=item Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -572,14 +545,14 @@ Returns the current value of Created. =cut -=head2 Disabled +=item Disabled Returns the current value of Disabled. (In the database, Disabled is stored as smallint(6).) -=head2 SetDisabled VALUE +=item SetDisabled VALUE Set Disabled to VALUE. @@ -591,59 +564,59 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -sub _CoreAccessible { +sub _ClassAccessible { { id => - {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, type => 'int(11)', default => ''}, EffectiveId => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Queue => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Type => - {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, type => 'varchar(16)', default => ''}, IssueStatement => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Resolution => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Owner => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Subject => - {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => '[no subject]'}, + {read => 1, write => 1, type => 'varchar(200)', default => '[no subject]'}, InitialPriority => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, FinalPriority => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Priority => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, TimeEstimated => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, TimeWorked => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Status => - {read => 1, write => 1, sql_type => 12, length => 10, is_blob => 0, is_numeric => 0, type => 'varchar(10)', default => ''}, + {read => 1, write => 1, type => 'varchar(10)', default => ''}, TimeLeft => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Told => - {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, write => 1, type => 'datetime', default => ''}, Starts => - {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, write => 1, type => 'datetime', default => ''}, Started => - {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, write => 1, type => 'datetime', default => ''}, Due => - {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, write => 1, type => 'datetime', default => ''}, Resolved => - {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, write => 1, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, Creator => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, Disabled => - {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, + {read => 1, write => 1, type => 'smallint(6)', default => '0'}, } }; @@ -675,7 +648,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/TicketCustomFieldValue.pm b/rt/lib/RT/TicketCustomFieldValue.pm deleted file mode 100644 index 717647266..000000000 --- a/rt/lib/RT/TicketCustomFieldValue.pm +++ /dev/null @@ -1,308 +0,0 @@ -# {{{ BEGIN BPS TAGGED BLOCK -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC -# <jesse@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work 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. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# }}} END BPS TAGGED BLOCK -# Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) -# WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. -# -# !! DO NOT EDIT THIS FILE !! -# - -use strict; - - -=head1 NAME - -RT::TicketCustomFieldValue - - -=head1 SYNOPSIS - -=head1 DESCRIPTION - -=head1 METHODS - -=cut - -package RT::TicketCustomFieldValue; -use RT::Record; -use RT::CustomField; -use RT::Ticket; - - -use vars qw( @ISA ); -@ISA= qw( RT::Record ); - -sub _Init { - my $self = shift; - - $self->Table('TicketCustomFieldValues'); - $self->SUPER::_Init(@_); -} - - - - - -=head2 Create PARAMHASH - -Create takes a hash of values and creates a row in the database: - - int(11) 'Ticket'. - int(11) 'CustomField'. - varchar(255) 'Content'. - -=cut - - - - -sub Create { - my $self = shift; - my %args = ( - Ticket => '0', - CustomField => '0', - Content => '', - - @_); - $self->SUPER::Create( - Ticket => $args{'Ticket'}, - CustomField => $args{'CustomField'}, - Content => $args{'Content'}, -); - -} - - - -=head2 id - -Returns the current value of id. -(In the database, id is stored as int(11).) - - -=cut - - -=head2 Ticket - -Returns the current value of Ticket. -(In the database, Ticket is stored as int(11).) - - - -=head2 SetTicket VALUE - - -Set Ticket to VALUE. -Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, Ticket will be stored as a int(11).) - - -=cut - - -=head2 TicketObj - -Returns the Ticket Object which has the id returned by Ticket - - -=cut - -sub TicketObj { - my $self = shift; - my $Ticket = RT::Ticket->new($self->CurrentUser); - $Ticket->Load($self->__Value('Ticket')); - return($Ticket); -} - -=head2 CustomField - -Returns the current value of CustomField. -(In the database, CustomField is stored as int(11).) - - - -=head2 SetCustomField VALUE - - -Set CustomField to VALUE. -Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, CustomField will be stored as a int(11).) - - -=cut - - -=head2 CustomFieldObj - -Returns the CustomField Object which has the id returned by CustomField - - -=cut - -sub CustomFieldObj { - my $self = shift; - my $CustomField = RT::CustomField->new($self->CurrentUser); - $CustomField->Load($self->__Value('CustomField')); - return($CustomField); -} - -=head2 Content - -Returns the current value of Content. -(In the database, Content is stored as varchar(255).) - - - -=head2 SetContent VALUE - - -Set Content to VALUE. -Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, Content will be stored as a varchar(255).) - - -=cut - - -=head2 Creator - -Returns the current value of Creator. -(In the database, Creator is stored as int(11).) - - -=cut - - -=head2 Created - -Returns the current value of Created. -(In the database, Created is stored as datetime.) - - -=cut - - -=head2 LastUpdatedBy - -Returns the current value of LastUpdatedBy. -(In the database, LastUpdatedBy is stored as int(11).) - - -=cut - - -=head2 LastUpdated - -Returns the current value of LastUpdated. -(In the database, LastUpdated is stored as datetime.) - - -=cut - - - -sub _CoreAccessible { - { - - id => - {read => 1, type => 'int(11)', default => ''}, - Ticket => - {read => 1, write => 1, type => 'int(11)', default => '0'}, - CustomField => - {read => 1, write => 1, type => 'int(11)', default => '0'}, - Content => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, - Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, - Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, - LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, - LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, - - } -}; - - - eval "require RT::TicketCustomFieldValue_Overlay"; - if ($@ && $@ !~ qr{^Can't locate RT/TicketCustomFieldValue_Overlay.pm}) { - die $@; - }; - - eval "require RT::TicketCustomFieldValue_Vendor"; - if ($@ && $@ !~ qr{^Can't locate RT/TicketCustomFieldValue_Vendor.pm}) { - die $@; - }; - - eval "require RT::TicketCustomFieldValue_Local"; - if ($@ && $@ !~ qr{^Can't locate RT/TicketCustomFieldValue_Local.pm}) { - die $@; - }; - - - - -=head1 SEE ALSO - -This class allows "overlay" methods to be placed -into the following files _Overlay is for a System overlay by the original author, -_Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customizations. - -These overlay files can contain new subs or subs to replace existing subs in this module. - -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line - - no warnings qw(redefine); - -so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. - -RT::TicketCustomFieldValue_Overlay, RT::TicketCustomFieldValue_Vendor, RT::TicketCustomFieldValue_Local - -=cut - - -1; diff --git a/rt/lib/RT/TicketCustomFieldValue_Overlay.pm b/rt/lib/RT/TicketCustomFieldValue_Overlay.pm deleted file mode 100644 index 270c5939a..000000000 --- a/rt/lib/RT/TicketCustomFieldValue_Overlay.pm +++ /dev/null @@ -1,74 +0,0 @@ -# {{{ BEGIN BPS TAGGED BLOCK -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC -# <jesse@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work 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. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# }}} END BPS TAGGED BLOCK -use strict; -no warnings qw(redefine); - - - -=head2 LoadByTicketContentAndCustomField { Ticket => TICKET, CustomField => CUSTOMFIELD, Content => CONTENT } - -Loads a custom field value by Ticket, Content and which CustomField it's tied to - -=cut - - -sub LoadByTicketContentAndCustomField { - my $self = shift; - my %args = ( Ticket => undef, - CustomField => undef, - Content => undef, - @_ - ); - - - $self->LoadByCols( Content => $args{'Content'}, - CustomField => $args{'CustomField'}, - Ticket => $args{'Ticket'}); - - -} - -1; diff --git a/rt/lib/RT/TicketCustomFieldValues.pm b/rt/lib/RT/TicketCustomFieldValues.pm deleted file mode 100644 index 2174afef3..000000000 --- a/rt/lib/RT/TicketCustomFieldValues.pm +++ /dev/null @@ -1,137 +0,0 @@ -# {{{ BEGIN BPS TAGGED BLOCK -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC -# <jesse@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work 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. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# }}} END BPS TAGGED BLOCK -# Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) -# WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. -# -# !! DO NOT EDIT THIS FILE !! -# - -use strict; - - -=head1 NAME - - RT::TicketCustomFieldValues -- Class Description - -=head1 SYNOPSIS - - use RT::TicketCustomFieldValues - -=head1 DESCRIPTION - - -=head1 METHODS - -=cut - -package RT::TicketCustomFieldValues; - -use RT::SearchBuilder; -use RT::TicketCustomFieldValue; - -use vars qw( @ISA ); -@ISA= qw(RT::SearchBuilder); - - -sub _Init { - my $self = shift; - $self->{'table'} = 'TicketCustomFieldValues'; - $self->{'primary_key'} = 'id'; - - - return ( $self->SUPER::_Init(@_) ); -} - - -=head2 NewItem - -Returns an empty new RT::TicketCustomFieldValue item - -=cut - -sub NewItem { - my $self = shift; - return(RT::TicketCustomFieldValue->new($self->CurrentUser)); -} - - eval "require RT::TicketCustomFieldValues_Overlay"; - if ($@ && $@ !~ qr{^Can't locate RT/TicketCustomFieldValues_Overlay.pm}) { - die $@; - }; - - eval "require RT::TicketCustomFieldValues_Vendor"; - if ($@ && $@ !~ qr{^Can't locate RT/TicketCustomFieldValues_Vendor.pm}) { - die $@; - }; - - eval "require RT::TicketCustomFieldValues_Local"; - if ($@ && $@ !~ qr{^Can't locate RT/TicketCustomFieldValues_Local.pm}) { - die $@; - }; - - - - -=head1 SEE ALSO - -This class allows "overlay" methods to be placed -into the following files _Overlay is for a System overlay by the original author, -_Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customizations. - -These overlay files can contain new subs or subs to replace existing subs in this module. - -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line - - no warnings qw(redefine); - -so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. - -RT::TicketCustomFieldValues_Overlay, RT::TicketCustomFieldValues_Vendor, RT::TicketCustomFieldValues_Local - -=cut - - -1; diff --git a/rt/lib/RT/TicketCustomFieldValues_Overlay.pm b/rt/lib/RT/TicketCustomFieldValues_Overlay.pm deleted file mode 100644 index 8cbaca574..000000000 --- a/rt/lib/RT/TicketCustomFieldValues_Overlay.pm +++ /dev/null @@ -1,108 +0,0 @@ -# {{{ BEGIN BPS TAGGED BLOCK -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC -# <jesse@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work 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. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# }}} END BPS TAGGED BLOCK -use strict; -no warnings qw(redefine); - -# {{{ sub LimitToCustomField - -=head2 LimitToCustomField FIELD - -Limits the returned set to values for the custom field with Id FIELD - -=cut - -sub LimitToCustomField { - my $self = shift; - my $cf = shift; - return ($self->Limit( FIELD => 'CustomField', - VALUE => $cf, - OPERATOR => '=')); - -} - -# }}} - -# {{{ sub LimitToTicket - -=head2 LimitToTicket TICKETID - -Limits the returned set to values for the ticket with Id TICKETID - -=cut - -sub LimitToTicket { - my $self = shift; - my $ticket = shift; - return ($self->Limit( FIELD => 'Ticket', - VALUE => $ticket, - OPERATOR => '=')); - -} - -# }}} - - -=sub HasEntry VALUE - -Returns true if this CustomFieldValues collection has an entry with content that eq VALUE - -=cut - - -sub HasEntry { - my $self = shift; - my $value = shift; - - #TODO: this could cache and optimize a fair bit. - foreach my $item (@{$self->ItemsArrayRef}) { - return(1) if ($item->Content eq $value); - } - return undef; - -} - -1; - diff --git a/rt/lib/RT/Ticket_Overlay.pm b/rt/lib/RT/Ticket_Overlay.pm index 97bcdf58b..8d04742e9 100644 --- a/rt/lib/RT/Ticket_Overlay.pm +++ b/rt/lib/RT/Ticket_Overlay.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} # {{{ Front Material @@ -229,7 +229,7 @@ Ticket links can be set up during create by passing the link type as a hask key the ticket id to be linked to as a value (or a URI when linking to other objects). Multiple links of the same type can be created by passing an array ref. For example: - Parents => 45, + Parent => 45, DependsOn => [ 15, 22 ], RefersTo => 'http://www.bestpractical.com', @@ -617,11 +617,16 @@ sub Create { next; } } - + + #don't show transactions for reminders + my $silent = ( !$args{'_RecordTransaction'} + || $self->Type eq 'reminder' + ); + my ( $wval, $wmsg ) = $self->_AddLink( Type => $LINKTYPEMAP{$type}->{'Type'}, $LINKTYPEMAP{$type}->{'Mode'} => $link, - Silent => !$args{'_RecordTransaction'}, + Silent => $silent, 'Silent'. ( $LINKTYPEMAP{$type}->{'Mode'} eq 'Base'? 'Target': 'Base' ) => 1, ); @@ -631,6 +636,69 @@ sub Create { } # }}} + + # {{{ Deal with auto-customer association + + #unless we already have (a) customer(s)... + unless ( $self->Customers->Count ) { + + #first find any requestors with emails but *without* customer targets + my @NoCust_Requestors = + grep { $_->EmailAddress && ! $_->Customers->Count } + @{ $self->_Requestors->UserMembersObj->ItemsArrayRef }; + + for my $Requestor (@NoCust_Requestors) { + + #perhaps the stuff in here should be in a User method?? + my @Customers = + &RT::URI::freeside::email_search( email=>$Requestor->EmailAddress ); + + foreach my $custnum ( map $_->{'custnum'}, @Customers ) { + + ## false laziness w/RT/Interface/Web_Vendor.pm + my @link = ( 'Type' => 'MemberOf', + 'Target' => "freeside://freeside/cust_main/$custnum", + ); + + my( $val, $msg ) = $Requestor->_AddLink(@link); + #XXX should do something with $msg# push @non_fatal_errors, $msg; + + } + + } + + #find any requestors with customer targets + + my %cust_target = (); + + my @Requestors = + grep { $_->Customers->Count } + @{ $self->_Requestors->UserMembersObj->ItemsArrayRef }; + + foreach my $Requestor ( @Requestors ) { + foreach my $cust_link ( @{ $Requestor->Customers->ItemsArrayRef } ) { + $cust_target{ $cust_link->Target } = 1; + } + } + + #and then auto-associate this ticket with those customers + + foreach my $cust_target ( keys %cust_target ) { + + my @link = ( 'Type' => 'MemberOf', + #'Target' => "freeside://freeside/cust_main/$custnum", + 'Target' => $cust_target, + ); + + my( $val, $msg ) = $self->_AddLink(@link); + push @non_fatal_errors, $msg; + + } + + } + + # }}} + # Now that we've created the ticket and set up its metadata, we can actually go and check OwnTicket on the ticket itself. # This might be different than before in cases where extensions like RTIR are doing clever things with RT's ACL system if ( $DeferOwner ) { @@ -646,7 +714,6 @@ sub Create { } else { $Owner = $DeferOwner; $self->__Set(Field => 'Owner', Value => $Owner->id); - } $self->OwnerGroup->_AddMember( PrincipalId => $Owner->PrincipalId, @@ -654,7 +721,8 @@ sub Create { ); } - if ( $args{'_RecordTransaction'} ) { + #don't make a transaction or fire off any scrips for reminders either + if ( $args{'_RecordTransaction'} && $self->Type ne 'reminder' ) { # {{{ Add a transaction for the create my ( $Trans, $Msg, $TransObj ) = $self->_NewTransaction( @@ -1428,6 +1496,25 @@ sub Requestors { # }}} +# {{{ sub _Requestors + +=head2 _Requestors + +Private non-ACLed variant of Reqeustors so that we can look them up for the +purposes of customer auto-association during create. + +=cut + +sub _Requestors { + my $self = shift; + + my $group = RT::Group->new($RT::SystemUser); + $group->LoadTicketRoleGroup(Type => 'Requestor', Ticket => $self->Id); + return ($group); +} + +# }}} + # {{{ sub Cc =head2 Cc @@ -2225,6 +2312,16 @@ sub _Links { return $links; } + # without this you will also get RT::User(s) instead of tickets! + if ($field == 'Base' and $type == 'MemberOf') { + my $rtname = RT->Config->Get('rtname'); + $links->Limit( + FIELD => 'Base', + OPERATOR => 'STARTSWITH', + VALUE => "fsck.com-rt://$rtname/ticket/", + ); + } + # Maybe this ticket is a merge ticket my $limit_on = 'Local'. $field; # at least to myself diff --git a/rt/lib/RT/Tickets.pm b/rt/lib/RT/Tickets.pm index 77d4456ad..b6b349144 100755 --- a/rt/lib/RT/Tickets.pm +++ b/rt/lib/RT/Tickets.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -89,7 +64,7 @@ sub _Init { } -=head2 NewItem +=item NewItem Returns an empty new RT::Ticket item @@ -126,7 +101,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Tickets_Overlay.pm b/rt/lib/RT/Tickets_Overlay.pm index 2c4401955..16e98aec8 100644 --- a/rt/lib/RT/Tickets_Overlay.pm +++ b/rt/lib/RT/Tickets_Overlay.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} # Major Changes: @@ -145,6 +145,9 @@ our %FIELD_METADATA = ( WatcherGroup => [ 'MEMBERSHIPFIELD', ], #loc_left_pair HasAttribute => [ 'HASATTRIBUTE', 1 ], HasNoAttribute => [ 'HASATTRIBUTE', 0 ], + Agentnum => [ 'FREESIDEFIELD', ], + Classnum => [ 'FREESIDEFIELD', ], + Tagnum => [ 'FREESIDEFIELD', 'cust_tag' ], ); # Mapping of Field Type to Function @@ -161,6 +164,7 @@ our %dispatch = ( MEMBERSHIPFIELD => \&_WatcherMembershipLimit, CUSTOMFIELD => \&_CustomFieldLimit, HASATTRIBUTE => \&_HasAttributeLimit, + FREESIDEFIELD => \&_FreesideFieldLimit, ); our %can_bundle = ();# WATCHERFIELD => "yes", ); @@ -519,6 +523,14 @@ sub _DateLimit { die "Incorrect Meta Data for $field" unless ( defined $meta->[1] ); + $sb->_DateFieldLimit( $meta->[1], $op, $value, @rest ); +} + +# Factor this out for use by custom fields + +sub _DateFieldLimit { + my ( $sb, $field, $op, $value, @rest ) = @_; + my $date = RT::Date->new( $sb->CurrentUser ); $date->Set( Format => 'unknown', Value => $value ); @@ -527,23 +539,44 @@ sub _DateLimit { # if we're specifying =, that means we want everything on a # particular single day. in the database, we need to check for > # and < the edges of that day. - - $date->SetToMidnight( Timezone => 'server' ); - my $daystart = $date->ISO; - $date->AddDay; - my $dayend = $date->ISO; + # + # Except if the value is 'this month' or 'last month', check + # > and < the edges of the month. + + my ($daystart, $dayend); + if ( lc($value) eq 'this month' ) { + $date->SetToNow; + $date->SetToStart('month', Timezone => 'server'); + $daystart = $date->ISO; + $date->AddMonth; + $dayend = $date->ISO; + } + elsif ( lc($value) eq 'last month' ) { + $date->SetToNow; + $date->SetToStart('month', Timezone => 'server'); + $dayend = $date->ISO; + $date->AddDays(-1); + $date->SetToStart('month', Timezone => 'server'); + $daystart = $date->ISO; + } + else { + $date->SetToMidnight( Timezone => 'server' ); + $daystart = $date->ISO; + $date->AddDay; + $dayend = $date->ISO; + } $sb->_OpenParen; $sb->_SQLLimit( - FIELD => $meta->[1], + FIELD => $field, OPERATOR => ">=", VALUE => $daystart, @rest, ); $sb->_SQLLimit( - FIELD => $meta->[1], + FIELD => $field, OPERATOR => "<", VALUE => $dayend, @rest, @@ -555,7 +588,7 @@ sub _DateLimit { } else { $sb->_SQLLimit( - FIELD => $meta->[1], + FIELD => $field, OPERATOR => $op, VALUE => $date->ISO, @rest, @@ -1423,6 +1456,15 @@ sub _CustomFieldLimit { %rest ); } + elsif ( $cf->Type eq 'Date' ) { + $self->_DateFieldLimit( + 'Content', + $op, + $value, + ALIAS => $TicketCFs, + %rest + ); + } elsif ( $op eq '=' || $op eq '!=' || $op eq '<>' ) { unless ( length( Encode::encode_utf8($value) ) > 255 ) { $self->_SQLLimit( @@ -1600,7 +1642,6 @@ sub _HasAttributeLimit { ); } - # End Helper Functions # End of SQL Stuff ------------------------------------------------- @@ -1733,7 +1774,32 @@ sub OrderByCols { } push @res, { %$row, FIELD => "Priority", ORDER => $order } ; - } + + } elsif ( $field eq 'Customer' ) { #Freeside + if ( $subkey eq 'Number' ) { + my ($linkalias, $custnum_sql) = $self->JoinToCustLinks; + push @res, { %$row, + ALIAS => '', + FIELD => $custnum_sql, + }; + } + else { + my $custalias = $self->JoinToCustomer; + my $field; + if ( $subkey eq 'Name' ) { + $field = "COALESCE( $custalias.company, + $custalias.last || ', ' || $custalias.first + )"; + } + else { + # no other cases exist yet, but for obviousness: + $field = $subkey; + } + push @res, { %$row, ALIAS => '', FIELD => $field }; + } + + } #Freeside + else { push @res, $row; } @@ -1741,6 +1807,100 @@ sub OrderByCols { return $self->SUPER::OrderByCols(@res); } +#Freeside + +sub JoinToCustLinks { + # Set up join to links (id = localbase), + # limit link type to 'MemberOf', + # and target value to any Freeside custnum URI. + # Return the linkalias for further join/limit action, + # and an sql expression to retrieve the custnum. + my $self = shift; + my $linkalias = $self->Join( + TYPE => 'LEFT', + ALIAS1 => 'main', + FIELD1 => 'id', + TABLE2 => 'Links', + FIELD2 => 'LocalBase', + ); + + $self->SUPER::Limit( + LEFTJOIN => $linkalias, + FIELD => 'Type', + OPERATOR => '=', + VALUE => 'MemberOf', + ); + $self->SUPER::Limit( + LEFTJOIN => $linkalias, + FIELD => 'Target', + OPERATOR => 'STARTSWITH', + VALUE => 'freeside://freeside/cust_main/', + ); + my $custnum_sql = "CAST(SUBSTR($linkalias.Target,31) AS "; + if ( RT->Config->Get('DatabaseType') eq 'mysql' ) { + $custnum_sql .= 'SIGNED INTEGER)'; + } + else { + $custnum_sql .= 'INTEGER)'; + } + return ($linkalias, $custnum_sql); +} + +sub JoinToCustomer { + my $self = shift; + my ($linkalias, $custnum_sql) = $self->JoinToCustLinks; + + my $custalias = $self->Join( + TYPE => 'LEFT', + EXPRESSION => $custnum_sql, + TABLE2 => 'cust_main', + FIELD2 => 'custnum', + ); + return $custalias; +} + +sub _FreesideFieldLimit { + my ( $self, $field, $op, $value, %rest ) = @_; + my $alias = $self->JoinToCustomer; + my $is_negative = 0; + if ( $op eq '!=' || $op =~ /\bNOT\b/i ) { + # if the op is negative, do the join as though + # the op were positive, then accept only records + # where the right-side join key is null. + $is_negative = 1; + $op = '=' if $op eq '!='; + $op =~ s/\bNOT\b//; + } + my $meta = $FIELD_METADATA{$field}; + if ( $meta->[1] ) { + $alias = $self->Join( + TYPE => 'LEFT', + ALIAS1 => $alias, + FIELD1 => 'custnum', + TABLE2 => $meta->[1], + FIELD2 => 'custnum', + ); + } + + $self->SUPER::Limit( + LEFTJOIN => $alias, + FIELD => lc($field), + OPERATOR => $op, + VALUE => $value, + ENTRYAGGREGATOR => 'AND', + ); + $self->_SQLLimit( + %rest, + ALIAS => $alias, + FIELD => lc($field), + OPERATOR => $is_negative ? 'IS' : 'IS NOT', + VALUE => 'NULL', + QUOTEVALUE => 0, + ); +} + +#Freeside + # }}} # {{{ Limit the result set based on content diff --git a/rt/lib/RT/Transaction.pm b/rt/lib/RT/Transaction.pm index d0228ad86..ca491a6c7 100755 --- a/rt/lib/RT/Transaction.pm +++ b/rt/lib/RT/Transaction.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -70,6 +45,7 @@ RT::Transaction package RT::Transaction; use RT::Record; +use RT::Ticket; use vars qw( @ISA ); @@ -86,21 +62,18 @@ sub _Init { -=head2 Create PARAMHASH +=item Create PARAMHASH Create takes a hash of values and creates a row in the database: - varchar(64) 'ObjectType'. - int(11) 'ObjectId'. + int(11) 'EffectiveTicket'. + int(11) 'Ticket'. int(11) 'TimeTaken'. varchar(20) 'Type'. varchar(40) 'Field'. varchar(255) 'OldValue'. varchar(255) 'NewValue'. - varchar(255) 'ReferenceType'. - int(11) 'OldReference'. - int(11) 'NewReference'. - varchar(255) 'Data'. + varchar(100) 'Data'. =cut @@ -110,30 +83,24 @@ Create takes a hash of values and creates a row in the database: sub Create { my $self = shift; my %args = ( - ObjectType => '', - ObjectId => '0', + EffectiveTicket => '0', + Ticket => '0', TimeTaken => '0', Type => '', Field => '', OldValue => '', NewValue => '', - ReferenceType => '', - OldReference => '', - NewReference => '', Data => '', @_); $self->SUPER::Create( - ObjectType => $args{'ObjectType'}, - ObjectId => $args{'ObjectId'}, + EffectiveTicket => $args{'EffectiveTicket'}, + Ticket => $args{'Ticket'}, TimeTaken => $args{'TimeTaken'}, Type => $args{'Type'}, Field => $args{'Field'}, OldValue => $args{'OldValue'}, NewValue => $args{'NewValue'}, - ReferenceType => $args{'ReferenceType'}, - OldReference => $args{'OldReference'}, - NewReference => $args{'NewReference'}, Data => $args{'Data'}, ); @@ -141,7 +108,7 @@ sub Create { -=head2 id +=item id Returns the current value of id. (In the database, id is stored as int(11).) @@ -150,50 +117,64 @@ Returns the current value of id. =cut -=head2 ObjectType +=item EffectiveTicket -Returns the current value of ObjectType. -(In the database, ObjectType is stored as varchar(64).) +Returns the current value of EffectiveTicket. +(In the database, EffectiveTicket is stored as int(11).) -=head2 SetObjectType VALUE +=item SetEffectiveTicket VALUE -Set ObjectType to VALUE. +Set EffectiveTicket to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, ObjectType will be stored as a varchar(64).) +(In the database, EffectiveTicket will be stored as a int(11).) =cut -=head2 ObjectId +=item Ticket -Returns the current value of ObjectId. -(In the database, ObjectId is stored as int(11).) +Returns the current value of Ticket. +(In the database, Ticket is stored as int(11).) -=head2 SetObjectId VALUE +=item SetTicket VALUE -Set ObjectId to VALUE. +Set Ticket to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, ObjectId will be stored as a int(11).) +(In the database, Ticket will be stored as a int(11).) + + +=cut + + +=item TicketObj + +Returns the Ticket Object which has the id returned by Ticket =cut +sub TicketObj { + my $self = shift; + my $Ticket = RT::Ticket->new($self->CurrentUser); + $Ticket->Load($self->__Value('Ticket')); + return($Ticket); +} -=head2 TimeTaken +=item TimeTaken Returns the current value of TimeTaken. (In the database, TimeTaken is stored as int(11).) -=head2 SetTimeTaken VALUE +=item SetTimeTaken VALUE Set TimeTaken to VALUE. @@ -204,14 +185,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Type +=item Type Returns the current value of Type. (In the database, Type is stored as varchar(20).) -=head2 SetType VALUE +=item SetType VALUE Set Type to VALUE. @@ -222,14 +203,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Field +=item Field Returns the current value of Field. (In the database, Field is stored as varchar(40).) -=head2 SetField VALUE +=item SetField VALUE Set Field to VALUE. @@ -240,14 +221,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 OldValue +=item OldValue Returns the current value of OldValue. (In the database, OldValue is stored as varchar(255).) -=head2 SetOldValue VALUE +=item SetOldValue VALUE Set OldValue to VALUE. @@ -258,14 +239,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 NewValue +=item NewValue Returns the current value of NewValue. (In the database, NewValue is stored as varchar(255).) -=head2 SetNewValue VALUE +=item SetNewValue VALUE Set NewValue to VALUE. @@ -276,79 +257,25 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ReferenceType - -Returns the current value of ReferenceType. -(In the database, ReferenceType is stored as varchar(255).) - - - -=head2 SetReferenceType VALUE - - -Set ReferenceType to VALUE. -Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, ReferenceType will be stored as a varchar(255).) - - -=cut - - -=head2 OldReference - -Returns the current value of OldReference. -(In the database, OldReference is stored as int(11).) - - - -=head2 SetOldReference VALUE - - -Set OldReference to VALUE. -Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, OldReference will be stored as a int(11).) - - -=cut - - -=head2 NewReference - -Returns the current value of NewReference. -(In the database, NewReference is stored as int(11).) - - - -=head2 SetNewReference VALUE - - -Set NewReference to VALUE. -Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, NewReference will be stored as a int(11).) - - -=cut - - -=head2 Data +=item Data Returns the current value of Data. -(In the database, Data is stored as varchar(255).) +(In the database, Data is stored as varchar(100).) -=head2 SetData VALUE +=item SetData VALUE Set Data to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, Data will be stored as a varchar(255).) +(In the database, Data will be stored as a varchar(100).) =cut -=head2 Creator +=item Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -357,7 +284,7 @@ Returns the current value of Creator. =cut -=head2 Created +=item Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -367,37 +294,31 @@ Returns the current value of Created. -sub _CoreAccessible { +sub _ClassAccessible { { id => - {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, - ObjectType => - {read => 1, write => 1, sql_type => 12, length => 64, is_blob => 0, is_numeric => 0, type => 'varchar(64)', default => ''}, - ObjectId => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, type => 'int(11)', default => ''}, + EffectiveTicket => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Ticket => + {read => 1, write => 1, type => 'int(11)', default => '0'}, TimeTaken => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, type => 'int(11)', default => '0'}, Type => - {read => 1, write => 1, sql_type => 12, length => 20, is_blob => 0, is_numeric => 0, type => 'varchar(20)', default => ''}, + {read => 1, write => 1, type => 'varchar(20)', default => ''}, Field => - {read => 1, write => 1, sql_type => 12, length => 40, is_blob => 0, is_numeric => 0, type => 'varchar(40)', default => ''}, + {read => 1, write => 1, type => 'varchar(40)', default => ''}, OldValue => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, type => 'varchar(255)', default => ''}, NewValue => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, - ReferenceType => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, - OldReference => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, - NewReference => - {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, write => 1, type => 'varchar(255)', default => ''}, Data => - {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, type => 'varchar(100)', default => ''}, Creator => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, } }; @@ -429,7 +350,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Transaction_Overlay.pm b/rt/lib/RT/Transaction_Overlay.pm index b8ea9389c..e51e5b50d 100644 --- a/rt/lib/RT/Transaction_Overlay.pm +++ b/rt/lib/RT/Transaction_Overlay.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} =head1 NAME @@ -176,7 +176,7 @@ sub Create { # Entry point of the rule system my $ticket = RT::Ticket->new($RT::SystemUser); $ticket->Load($args{'ObjectId'}); - my $rules = $self->{rules} = RT::Ruleset->FindAllRules( + my $rules = RT::Ruleset->FindAllRules( Stage => 'TransactionCreate', Type => $args{'Type'}, TicketObj => $ticket, @@ -211,22 +211,6 @@ sub Scrips { } -=head2 Rules - -Returns the array of Rule objects for this transaction. -This routine is only useful on a freshly created transaction object. -Rules do not get persisted to the database with transactions. - - -=cut - - -sub Rules { - my $self = shift; - return($self->{'rules'}); -} - - # {{{ sub Delete =head2 Delete @@ -302,29 +286,28 @@ textual part (as defined in RT::I18N::IsTextualContentType). Otherwise, returns undef. Takes a paramhash. If the $args{'Quote'} parameter is set, wraps this message -at $args{'Wrap'}. $args{'Wrap'} defaults to 70. +at $args{'Wrap'}. $args{'Wrap'} defaults to $RT::MessageBoxWidth - 2 or 70. If $args{'Type'} is set to C<text/html>, this will return an HTML part of the message, if available. Otherwise it looks for a text/plain part. If $args{'Type'} is missing, it defaults to the value of C<$RT::Transaction::PreferredContentType>, if that's missing too, -defaults to textual. +defaults to 'text/plain'. =cut sub Content { my $self = shift; my %args = ( - Type => $PreferredContentType || '', + Type => $PreferredContentType || 'text/plain', Quote => 0, Wrap => 70, + Wrap => ( $RT::MessageBoxWidth || 72 ) - 2, @_ ); my $content; - if ( my $content_obj = - $self->ContentObj( $args{Type} ? ( Type => $args{Type} ) : () ) ) - { + if ( my $content_obj = $self->ContentObj( Type => $args{Type} ) ) { $content = $content_obj->Content ||''; if ( lc $content_obj->ContentType eq 'text/html' ) { @@ -364,7 +347,7 @@ sub Content { $max = length if length > $max; } - if ( $max > 76 ) { + if ( $max > $args{'Wrap'}+6 ) { # 76 ) { require Text::Wrapper; my $wrapper = new Text::Wrapper( columns => $args{'Wrap'}, @@ -415,16 +398,12 @@ Returns the RT::Attachment object which contains the content for this Transactio sub ContentObj { my $self = shift; - my %args = ( Type => $PreferredContentType, Attachment => undef, @_ ); + my %args = ( Type => $PreferredContentType || 'text/plain', + @_ ); # If we don't have any content, return undef now. # Get the set of toplevel attachments to this transaction. - - my $Attachment = $args{'Attachment'}; - - $Attachment ||= $self->Attachments->First; - - return undef unless ($Attachment); + return undef unless my $Attachment = $self->Attachments->First; # If it's a textual part, just return the body. if ( RT::I18N::IsTextualContentType($Attachment->ContentType) ) { @@ -434,23 +413,14 @@ sub ContentObj { # If it's a multipart object, first try returning the first part with preferred # MIME type ('text/plain' by default). - elsif ( $Attachment->ContentType =~ qr|^multipart/mixed|i ) { - my $kids = $Attachment->Children; - while (my $child = $kids->Next) { - my $ret = $self->ContentObj(%args, Attachment => $child); - return $ret if ($ret); - } - } - elsif ( $Attachment->ContentType =~ qr|^multipart/|i ) { - if ( $args{Type} ) { - my $plain_parts = $Attachment->Children; - $plain_parts->ContentType( VALUE => $args{Type} ); - $plain_parts->LimitNotEmpty; - - # If we actully found a part, return its content - if ( my $first = $plain_parts->First ) { - return $first; - } + elsif ( $Attachment->ContentType =~ '^multipart/' ) { + my $plain_parts = $Attachment->Children; + $plain_parts->ContentType( VALUE => $args{Type} ); + $plain_parts->LimitNotEmpty; + + # If we actully found a part, return its content + if ( my $first = $plain_parts->First ) { + return $first; } # If that fails, return the first textual part which has some content. @@ -557,8 +527,6 @@ sub ContentAsMIME { my $self = shift; my $main_content = $self->ContentObj; - return unless $main_content; - my $entity = $main_content->ContentAsMIME; if ( $main_content->Parent ) { @@ -590,7 +558,11 @@ sub ContentAsMIME { OPERATOR => 'NOT STARTSWITH', VALUE => 'multipart/', ); - $attachments->LimitNotEmpty; + $attachments->Limit( + FIELD => 'Content', + OPERATOR => '!=', + VALUE => '', + ); while ( my $a = $attachments->Next ) { $entity->make_multipart unless $entity->is_multipart; $entity->add_part( $a->ContentAsMIME ); @@ -684,9 +656,6 @@ sub BriefDescription { ) ); } - elsif ( $type =~ /SystemError/ ) { - return $self->loc("System error"); - } if ( my $code = $_BriefDescriptions{$type} ) { return $code->($self); diff --git a/rt/lib/RT/Transactions.pm b/rt/lib/RT/Transactions.pm index 8ba1a9600..23a475ac6 100755 --- a/rt/lib/RT/Transactions.pm +++ b/rt/lib/RT/Transactions.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -89,7 +64,7 @@ sub _Init { } -=head2 NewItem +=item NewItem Returns an empty new RT::Transaction item @@ -126,7 +101,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/URI/freeside.pm b/rt/lib/RT/URI/freeside.pm new file mode 100644 index 000000000..1bd2f534a --- /dev/null +++ b/rt/lib/RT/URI/freeside.pm @@ -0,0 +1,297 @@ +# BEGIN LICENSE BLOCK +# +# Copyright (c) 2004 Kristian Hoffmann <khoff@fire2wire.com> +# Based on the original RT::URI::base and RT::URI::fsck_com_rt. +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# +# This work is made available to you under the terms of Version 2 of +# the GNU General Public License. A copy of that license should have +# been provided with this software, but in any event can be snarfed +# from www.gnu.org. +# +# This work 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. +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK +package RT::URI::freeside; + +use base qw( RT::URI::base ); +use strict; +use vars qw( $IntegrationType $URL ); +use Carp qw( cluck ); + + +=head1 NAME + +RT::URI::freeside + +=head1 DESCRIPTION + +URI handler for Freeside URIs. See http://www.freeside.biz/ for more +information on Freeside. + + +=head1 Public subroutines + +=over 4 + +=item FreesideGetConfig CONFKEY + +Subroutine that returns the freeside's configuration value(s) for CONFKEY +as a scalar or list. + +=cut + +sub FreesideGetConfig { return undef; } + + +=item FreesideURL + +Returns the URL for freeside's web interface. + +=cut + +sub FreesideURL { return $URL; } + + +=item FreesideVersion + +Returns a string describing the freeside version being used. + +=cut + +sub FreesideVersion { return undef; } + + +=item smart_search + +A wrapper for the FS::cust_main::smart_search subroutine. + +=cut + +sub smart_search { return undef; } + + +=item small_custview + +A wrapper for the FS::CGI::small_custview subroutine. + +=cut + +sub small_custview { return 'Freeside integration error!</A>'; } + + +=back + +=head1 Private methods + +=over 4 + +=item _FreesideGetRecord + +Method returns a hashref of the freeside record referenced in the URI. +Must be called after ParseURI. + +=cut + +sub _FreesideGetRecord { return undef; } + + +=item _FreesideURIPrefix + +Method that returns the URI prefix for freeside URIs. + +=cut + +sub _FreesideURIPrefix { + + my $self = shift; + return($self->Scheme . '://freeside'); + +} + +=item _FreesideURILabel + +Method that returns a short string describing the customer referenced +in the URI. + +=cut + +sub _FreesideURILabel { + + my $self = shift; + + #$RT::Logger->debug("Called _FreesideURILabel()"); + + return unless (exists($self->{'fstable'}) and + exists($self->{'fspkey'})); + + my $label; + my ($table, $pkey) = ($self->{'fstable'}, $self->{'fspkey'}); + + #if ($table ne 'cust_main') { + # warn "FS::${table} not currently supported"; + # return; + #} + + my $rec = $self->_FreesideGetRecord(); + + if (ref($rec) eq 'HASH' && $table eq 'cust_main') { + my $name = $rec->{'last'} . ', ' . $rec->{'first'}; + $name = $rec->{'company'} . " ($name)" if $rec->{'company'}; + $label = "$pkey: $name"; + } elsif ( $table eq 'cust_svc' && ref($rec) && $rec->{'_object'} ) { + #Internal only + my($l,$v) = $rec->{'_object'}->label; + $label = "$l: $v"; + } else { + $label = "$pkey: $table"; + } + + if ($label and !$@) { + return($label); + } else { + return; + } + +} + +=item _FreesideURILabelLong + +Method that returns a longer string describing the customer referenced +in the URI. + +=cut + +sub _FreesideURILabelLong { + + my $self = shift; + + return $self->_FreesideURILabel(); + +} + +=back + +=head1 Public methods + +=over 4 + +=cut + +sub ParseURI { + my $self = shift; + my $uri = shift; + my ($table, $pkey); + + my $uriprefix = $self->_FreesideURIPrefix; + if ($uri =~ /^$uriprefix\/(\w+)\/(\d*)$/) { + + $table = $1; + $pkey = $2; + + unless ( $pkey ) { + #way too noisy, using this prefix is normal usage# cluck "bad URL $uri"; + return(undef); + } + + $self->{'scheme'} = $self->Scheme; + + } else { + return(undef); + } + + $self->{'uri'} = "${uriprefix}/${table}/${pkey}"; + $self->{'fstable'} = $table; + $self->{'fspkey'} = $pkey; + + + my $url = $self->FreesideURL(); + + if ($url ne '') { + $self->{'href'} = "${url}/view/${table}.cgi?${pkey}"; + } else { + $self->{'href'} = $self->{'uri'}; + } + + $self->{'uri'}; + +} + +sub Scheme { + my $self = shift; + return('freeside'); + +} + +sub HREF { + my $self = shift; + return($self->{'href'} || $self->{'uri'}); +} + +sub IsLocal { + my $self = shift; + return undef; +} + +=item AsString + +Return a "pretty" string representing the URI object. + +This is meant to be used like this: + + % $re = $uri->Resolver; + <A HREF="<% $re->HREF %>"><% $re->AsString %></A> + +=cut + +sub AsString { + my $self = shift; + my $prettystring; + if ($prettystring = $self->_FreesideURILabel) { + return $prettystring; + } else { + return $self->URI; + } +} + +=item AsStringLong + +Return a longer (HTML) string representing the URI object. + +=cut + +sub AsStringLong { + my $self = shift; + my $prettystring; + if ($prettystring = $self->_FreesideURILabelLong || $self->_FreesideURILabel){ + return $prettystring; + } else { + return $self->URI; + } +} + +$IntegrationType ||= 'Internal'; +eval "require RT::URI::freeside::${RT::URI::freeside::IntegrationType}"; +warn $@ if $@; +if ($@ && + $@ !~ qr(^Can't locate RT/URI/freeside/${RT::URI::freeside::IntegrationType}.pm)) { + die $@; +}; + +=back + +=cut + +1; diff --git a/rt/lib/RT/URI/freeside/Internal.pm b/rt/lib/RT/URI/freeside/Internal.pm new file mode 100644 index 000000000..b5af134ac --- /dev/null +++ b/rt/lib/RT/URI/freeside/Internal.pm @@ -0,0 +1,145 @@ +# BEGIN LICENSE BLOCK +# +# Copyright (c) 2004 Kristian Hoffmann <khoff@fire2wire.com> +# Based on the original RT::URI::base and RT::URI::fsck_com_rt. +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# +# This work is made available to you under the terms of Version 2 of +# the GNU General Public License. A copy of that license should have +# been provided with this software, but in any event can be snarfed +# from www.gnu.org. +# +# This work 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. +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK +# +use strict; +no warnings qw(redefine); + +#use vars qw($conf); + +use FS; +use FS::UID qw(dbh); +use FS::CGI qw(popurl); +use FS::UI::Web::small_custview qw(small_custview); +use FS::Conf; +use FS::Record qw(qsearchs qsearch dbdef); +use FS::cust_main; +use FS::cust_svc; + +=head1 NAME + +RT::URI::freeside::Internal + +=head1 DESCRIPTION + +Overlay for the RT::URI::freeside URI handler implementing the Internal integration type. + +See L<RT::URI::freeside> for public/private interface documentation. + +=cut + + + +sub _FreesideGetRecord { + + my $self = shift; + my ($table, $pkey) = ($self->{'fstable'}, $self->{'fspkey'}); + + $RT::Logger->debug("Called _FreesideGetRecord()"); + + #eval "use FS::$table;"; + + my $dbdef = dbdef; + unless ($dbdef) { + $RT::Logger->error("Using Internal freeside integration type, ". + "but it doesn't look like we're running under ". + "freeside's Mason handler."); + return; + } + + my $pkeyfield = $dbdef->table($table)->primary_key; + unless ($pkeyfield) { + $RT::Logger->error("No primary key for freeside table '$table'"); + return; + } + + my $fsrec = qsearchs($table, { $pkeyfield => $pkey }); + unless ($fsrec) { + $RT::Logger->error("Record with '$pkeyfield' == '$pkey' does " . + "not exist in table $table"); + return; + } + + return { $fsrec->hash, '_object' => $fsrec }; + +} + +sub FreesideVersion { + + return $FS::VERSION; + +} + +sub FreesideGetConfig { + + #$conf = new FS::Conf unless ref($conf); + my $conf = new FS::Conf; + + return scalar($conf->config(@_)); + +} + +sub smart_search { #Subroutine + + return map { { $_->hash } } &FS::cust_main::Search::smart_search(@_); + +} + +sub email_search { #Subroutine + + return map { { $_->hash } } &FS::cust_main::Search::email_search(@_); + +} + +sub small_custview { + + return &FS::UI::Web::small_custview::small_custview(@_); + +} + +sub _FreesideURILabelLong { + + my $self = shift; + + my $table = $self->{'fstable'}; + + if ( $table eq 'cust_main' ) { + + my $rec = $self->_FreesideGetRecord(); + return small_custview( $rec->{'_object'}, + scalar(FS::Conf->new->config('countrydefault')), + 1 #nobalance + ); + + } else { + + return $self->_FreesideURILabel(); + + } + +} + +1; diff --git a/rt/lib/RT/URI/freeside/XMLRPC.pm b/rt/lib/RT/URI/freeside/XMLRPC.pm new file mode 100644 index 000000000..916c20d7b --- /dev/null +++ b/rt/lib/RT/URI/freeside/XMLRPC.pm @@ -0,0 +1,122 @@ +# BEGIN LICENSE BLOCK +# +# Copyright (c) 2004 Kristian Hoffmann <khoff@fire2wire.com> +# Based on the original RT::URI::base and RT::URI::fsck_com_rt. +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# +# This work is made available to you under the terms of Version 2 of +# the GNU General Public License. A copy of that license should have +# been provided with this software, but in any event can be snarfed +# from www.gnu.org. +# +# This work 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. +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK + +use strict; +no warnings qw(redefine); + +use vars qw($XMLRPC_URL $_FS_VERSION); + +use Frontier::Client; + +=head1 NAME + +RT::URI::freeside::XMLRPC + +=head1 DESCRIPTION + +Overlay for the RT::URI::freeside URI handler implementing the XMLRPC integration type. + +See L<RT::URI::freeside> for public/private interface documentation. + +=cut + + +sub _XMLRPCRequest { #Subroutine + + my $method = shift; + my @args = @_; + + my $result; + eval { + my $server = new Frontier::Client ( url => $XMLRPC_URL ); + $result = $server->call($method, @args); + }; + + if (not $@ and ref($result) eq 'ARRAY') { + return (scalar(@$result) == 1) ? @$result[0] : @$result; + } else { + $RT::Logger->debug("Freeside XMLRPC: " . $result || $@); + return (); + } + +} + +sub _FreesideGetRecord { + + my $self = shift; + my ($table, $pkey) = ($self->{'fstable'}, $self->{'fspkey'}); + my $record; + + $RT::Logger->debug("Called XMLRPC::_FreesideGetRecord()"); + + #FIXME: Need a better way to get primary keys. + # Maybe create a method for it and cache them like version? + my %table_pkeys = ( + cust_main => 'custnum', + ); + + my $method = 'Record.qsearchs'; + my @args = ($table, { $table_pkeys{$table} => $pkey }); + my ($record) = &_XMLRPCRequest($method, @args); + + return $record; + +} + + +sub FreesideGetConfig { + + return _XMLRPCRequest('Conf.config', @_); + +} + + +sub FreesideVersion { + + return $_FS_VERSION if ($_FS_VERSION =~ /^\d+\.\d+\.\d+/); + + $RT::Logger->debug("Requesting freeside version..."); + ($_FS_VERSION) = &_XMLRPCRequest('version'); + $RT::Logger->debug("Cached freeside version: ${_FS_VERSION}"); + + return $_FS_VERSION; + +} + +sub smart_search { #Subroutine + + return _XMLRPCRequest('cust_main.smart_search', @_); + +} + +sub small_custview { + + return _XMLRPCRequest('Web.UI.small_custview.small_custview', @_); + +} + +1; diff --git a/rt/lib/RT/User.pm b/rt/lib/RT/User.pm index af36c858e..cbc10f5b4 100755 --- a/rt/lib/RT/User.pm +++ b/rt/lib/RT/User.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -86,7 +61,7 @@ sub _Init { -=head2 Create PARAMHASH +=item Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -195,7 +170,7 @@ sub Create { -=head2 id +=item id Returns the current value of id. (In the database, id is stored as int(11).) @@ -204,14 +179,14 @@ Returns the current value of id. =cut -=head2 Name +=item Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=head2 SetName VALUE +=item SetName VALUE Set Name to VALUE. @@ -222,14 +197,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Password +=item Password Returns the current value of Password. (In the database, Password is stored as varchar(40).) -=head2 SetPassword VALUE +=item SetPassword VALUE Set Password to VALUE. @@ -240,14 +215,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Comments +=item Comments Returns the current value of Comments. (In the database, Comments is stored as blob.) -=head2 SetComments VALUE +=item SetComments VALUE Set Comments to VALUE. @@ -258,14 +233,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Signature +=item Signature Returns the current value of Signature. (In the database, Signature is stored as blob.) -=head2 SetSignature VALUE +=item SetSignature VALUE Set Signature to VALUE. @@ -276,14 +251,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 EmailAddress +=item EmailAddress Returns the current value of EmailAddress. (In the database, EmailAddress is stored as varchar(120).) -=head2 SetEmailAddress VALUE +=item SetEmailAddress VALUE Set EmailAddress to VALUE. @@ -294,14 +269,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 FreeformContactInfo +=item FreeformContactInfo Returns the current value of FreeformContactInfo. (In the database, FreeformContactInfo is stored as blob.) -=head2 SetFreeformContactInfo VALUE +=item SetFreeformContactInfo VALUE Set FreeformContactInfo to VALUE. @@ -312,14 +287,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Organization +=item Organization Returns the current value of Organization. (In the database, Organization is stored as varchar(200).) -=head2 SetOrganization VALUE +=item SetOrganization VALUE Set Organization to VALUE. @@ -330,14 +305,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 RealName +=item RealName Returns the current value of RealName. (In the database, RealName is stored as varchar(120).) -=head2 SetRealName VALUE +=item SetRealName VALUE Set RealName to VALUE. @@ -348,14 +323,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 NickName +=item NickName Returns the current value of NickName. (In the database, NickName is stored as varchar(16).) -=head2 SetNickName VALUE +=item SetNickName VALUE Set NickName to VALUE. @@ -366,14 +341,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Lang +=item Lang Returns the current value of Lang. (In the database, Lang is stored as varchar(16).) -=head2 SetLang VALUE +=item SetLang VALUE Set Lang to VALUE. @@ -384,14 +359,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 EmailEncoding +=item EmailEncoding Returns the current value of EmailEncoding. (In the database, EmailEncoding is stored as varchar(16).) -=head2 SetEmailEncoding VALUE +=item SetEmailEncoding VALUE Set EmailEncoding to VALUE. @@ -402,14 +377,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 WebEncoding +=item WebEncoding Returns the current value of WebEncoding. (In the database, WebEncoding is stored as varchar(16).) -=head2 SetWebEncoding VALUE +=item SetWebEncoding VALUE Set WebEncoding to VALUE. @@ -420,14 +395,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ExternalContactInfoId +=item ExternalContactInfoId Returns the current value of ExternalContactInfoId. (In the database, ExternalContactInfoId is stored as varchar(100).) -=head2 SetExternalContactInfoId VALUE +=item SetExternalContactInfoId VALUE Set ExternalContactInfoId to VALUE. @@ -438,14 +413,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ContactInfoSystem +=item ContactInfoSystem Returns the current value of ContactInfoSystem. (In the database, ContactInfoSystem is stored as varchar(30).) -=head2 SetContactInfoSystem VALUE +=item SetContactInfoSystem VALUE Set ContactInfoSystem to VALUE. @@ -456,14 +431,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 ExternalAuthId +=item ExternalAuthId Returns the current value of ExternalAuthId. (In the database, ExternalAuthId is stored as varchar(100).) -=head2 SetExternalAuthId VALUE +=item SetExternalAuthId VALUE Set ExternalAuthId to VALUE. @@ -474,14 +449,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 AuthSystem +=item AuthSystem Returns the current value of AuthSystem. (In the database, AuthSystem is stored as varchar(30).) -=head2 SetAuthSystem VALUE +=item SetAuthSystem VALUE Set AuthSystem to VALUE. @@ -492,14 +467,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Gecos +=item Gecos Returns the current value of Gecos. (In the database, Gecos is stored as varchar(16).) -=head2 SetGecos VALUE +=item SetGecos VALUE Set Gecos to VALUE. @@ -510,14 +485,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 HomePhone +=item HomePhone Returns the current value of HomePhone. (In the database, HomePhone is stored as varchar(30).) -=head2 SetHomePhone VALUE +=item SetHomePhone VALUE Set HomePhone to VALUE. @@ -528,14 +503,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 WorkPhone +=item WorkPhone Returns the current value of WorkPhone. (In the database, WorkPhone is stored as varchar(30).) -=head2 SetWorkPhone VALUE +=item SetWorkPhone VALUE Set WorkPhone to VALUE. @@ -546,14 +521,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 MobilePhone +=item MobilePhone Returns the current value of MobilePhone. (In the database, MobilePhone is stored as varchar(30).) -=head2 SetMobilePhone VALUE +=item SetMobilePhone VALUE Set MobilePhone to VALUE. @@ -564,14 +539,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 PagerPhone +=item PagerPhone Returns the current value of PagerPhone. (In the database, PagerPhone is stored as varchar(30).) -=head2 SetPagerPhone VALUE +=item SetPagerPhone VALUE Set PagerPhone to VALUE. @@ -582,14 +557,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Address1 +=item Address1 Returns the current value of Address1. (In the database, Address1 is stored as varchar(200).) -=head2 SetAddress1 VALUE +=item SetAddress1 VALUE Set Address1 to VALUE. @@ -600,14 +575,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Address2 +=item Address2 Returns the current value of Address2. (In the database, Address2 is stored as varchar(200).) -=head2 SetAddress2 VALUE +=item SetAddress2 VALUE Set Address2 to VALUE. @@ -618,14 +593,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 City +=item City Returns the current value of City. (In the database, City is stored as varchar(100).) -=head2 SetCity VALUE +=item SetCity VALUE Set City to VALUE. @@ -636,14 +611,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 State +=item State Returns the current value of State. (In the database, State is stored as varchar(100).) -=head2 SetState VALUE +=item SetState VALUE Set State to VALUE. @@ -654,14 +629,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Zip +=item Zip Returns the current value of Zip. (In the database, Zip is stored as varchar(16).) -=head2 SetZip VALUE +=item SetZip VALUE Set Zip to VALUE. @@ -672,14 +647,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Country +=item Country Returns the current value of Country. (In the database, Country is stored as varchar(50).) -=head2 SetCountry VALUE +=item SetCountry VALUE Set Country to VALUE. @@ -690,14 +665,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Timezone +=item Timezone Returns the current value of Timezone. (In the database, Timezone is stored as varchar(50).) -=head2 SetTimezone VALUE +=item SetTimezone VALUE Set Timezone to VALUE. @@ -708,14 +683,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 PGPKey +=item PGPKey Returns the current value of PGPKey. (In the database, PGPKey is stored as text.) -=head2 SetPGPKey VALUE +=item SetPGPKey VALUE Set PGPKey to VALUE. @@ -726,7 +701,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Creator +=item Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -735,7 +710,7 @@ Returns the current value of Creator. =cut -=head2 Created +=item Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -744,7 +719,7 @@ Returns the current value of Created. =cut -=head2 LastUpdatedBy +=item LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -753,7 +728,7 @@ Returns the current value of LastUpdatedBy. =cut -=head2 LastUpdated +=item LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -763,77 +738,77 @@ Returns the current value of LastUpdated. -sub _CoreAccessible { +sub _ClassAccessible { { id => - {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + {read => 1, type => 'int(11)', default => ''}, Name => - {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, type => 'varchar(200)', default => ''}, Password => - {read => 1, write => 1, sql_type => 12, length => 40, is_blob => 0, is_numeric => 0, type => 'varchar(40)', default => ''}, + {read => 1, write => 1, type => 'varchar(40)', default => ''}, Comments => - {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'blob', default => ''}, + {read => 1, write => 1, type => 'blob', default => ''}, Signature => - {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'blob', default => ''}, + {read => 1, write => 1, type => 'blob', default => ''}, EmailAddress => - {read => 1, write => 1, sql_type => 12, length => 120, is_blob => 0, is_numeric => 0, type => 'varchar(120)', default => ''}, + {read => 1, write => 1, type => 'varchar(120)', default => ''}, FreeformContactInfo => - {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'blob', default => ''}, + {read => 1, write => 1, type => 'blob', default => ''}, Organization => - {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, type => 'varchar(200)', default => ''}, RealName => - {read => 1, write => 1, sql_type => 12, length => 120, is_blob => 0, is_numeric => 0, type => 'varchar(120)', default => ''}, + {read => 1, write => 1, type => 'varchar(120)', default => ''}, NickName => - {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, type => 'varchar(16)', default => ''}, Lang => - {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, type => 'varchar(16)', default => ''}, EmailEncoding => - {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, type => 'varchar(16)', default => ''}, WebEncoding => - {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, type => 'varchar(16)', default => ''}, ExternalContactInfoId => - {read => 1, write => 1, sql_type => 12, length => 100, is_blob => 0, is_numeric => 0, type => 'varchar(100)', default => ''}, + {read => 1, write => 1, type => 'varchar(100)', default => ''}, ContactInfoSystem => - {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, + {read => 1, write => 1, type => 'varchar(30)', default => ''}, ExternalAuthId => - {read => 1, write => 1, sql_type => 12, length => 100, is_blob => 0, is_numeric => 0, type => 'varchar(100)', default => ''}, + {read => 1, write => 1, type => 'varchar(100)', default => ''}, AuthSystem => - {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, + {read => 1, write => 1, type => 'varchar(30)', default => ''}, Gecos => - {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, type => 'varchar(16)', default => ''}, HomePhone => - {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, + {read => 1, write => 1, type => 'varchar(30)', default => ''}, WorkPhone => - {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, + {read => 1, write => 1, type => 'varchar(30)', default => ''}, MobilePhone => - {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, + {read => 1, write => 1, type => 'varchar(30)', default => ''}, PagerPhone => - {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, + {read => 1, write => 1, type => 'varchar(30)', default => ''}, Address1 => - {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, type => 'varchar(200)', default => ''}, Address2 => - {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, type => 'varchar(200)', default => ''}, City => - {read => 1, write => 1, sql_type => 12, length => 100, is_blob => 0, is_numeric => 0, type => 'varchar(100)', default => ''}, + {read => 1, write => 1, type => 'varchar(100)', default => ''}, State => - {read => 1, write => 1, sql_type => 12, length => 100, is_blob => 0, is_numeric => 0, type => 'varchar(100)', default => ''}, + {read => 1, write => 1, type => 'varchar(100)', default => ''}, Zip => - {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, type => 'varchar(16)', default => ''}, Country => - {read => 1, write => 1, sql_type => 12, length => 50, is_blob => 0, is_numeric => 0, type => 'varchar(50)', default => ''}, + {read => 1, write => 1, type => 'varchar(50)', default => ''}, Timezone => - {read => 1, write => 1, sql_type => 12, length => 50, is_blob => 0, is_numeric => 0, type => 'varchar(50)', default => ''}, + {read => 1, write => 1, type => 'varchar(50)', default => ''}, PGPKey => - {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, + {read => 1, write => 1, type => 'text', default => ''}, Creator => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + {read => 1, auto => 1, type => 'datetime', default => ''}, } }; @@ -865,7 +840,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/User_Overlay.pm b/rt/lib/RT/User_Overlay.pm index 4de0d2aad..2115c3299 100644 --- a/rt/lib/RT/User_Overlay.pm +++ b/rt/lib/RT/User_Overlay.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} =head1 NAME @@ -69,7 +69,6 @@ package RT::User; use strict; no warnings qw(redefine); -use Digest::SHA; use Digest::MD5; use RT::Principals; use RT::ACE; @@ -989,28 +988,20 @@ sub SetPassword { } -=head3 _GeneratePassword PASSWORD [, SALT] +=head3 _GeneratePassword PASSWORD -Returns a salted SHA-256 hash of the password passed in, in base64 -encoding. +returns an MD5 hash of the password passed in, in hexadecimal encoding. =cut sub _GeneratePassword { my $self = shift; - my ($password, $salt) = @_; - - # Generate a random 4-byte salt - $salt ||= pack("C4",map{int rand(256)} 1..4); - - # Encode the salt, and a truncated SHA256 of the MD5 of the - # password. The additional, un-necessary level of MD5 allows for - # transparent upgrading to this scheme, from the previous unsalted - # MD5 one. - return MIME::Base64::encode_base64( - $salt . substr(Digest::SHA::sha256($salt . Digest::MD5::md5($password)),0,26), - "" # No newline - ); + my $password = shift; + + my $md5 = Digest::MD5->new(); + $md5->add(encode_utf8($password)); + return ($md5->hexdigest); + } =head3 _GeneratePasswordBase64 PASSWORD @@ -1073,32 +1064,23 @@ sub IsPassword { return(undef); } - my $stored = $self->__Value('Password'); - if (length $stored == 40) { - # The truncated SHA256(salt,MD5(passwd)) form from 2010/12 is 40 characters long - my $hash = MIME::Base64::decode_base64($stored); - # The first 4 bytes are the salt, the rest is substr(SHA256,0,26) - my $salt = substr($hash, 0, 4, ""); - return substr(Digest::SHA::sha256($salt . Digest::MD5::md5($value)), 0, 26) eq $hash; - } elsif (length $stored == 32) { - # Hex nonsalted-md5 - return 0 unless Digest::MD5::md5_hex(encode_utf8($value)) eq $stored; - } elsif (length $stored == 22) { - # Base64 nonsalted-md5 - return 0 unless Digest::MD5::md5_base64(encode_utf8($value)) eq $stored; - } elsif (length $stored == 13) { - # crypt() output - return 0 unless crypt(encode_utf8($value), $stored) eq $stored; - } else { - $RT::Logger->warn("Unknown password form"); - return 0; + # generate an md5 password + if ($self->_GeneratePassword($value) eq $self->__Value('Password')) { + return(1); } - # We got here by validating successfully, but with a legacy - # password form. Update to the most recent form. - my $obj = $self->isa("RT::CurrentUser") ? $self->UserObj : $self; - $obj->_Set(Field => 'Password', Value => $self->_GeneratePassword($value) ); - return 1; + # if it's a historical password we say ok. + if ($self->__Value('Password') eq crypt(encode_utf8($value), $self->__Value('Password')) + or $self->_GeneratePasswordBase64($value) eq $self->__Value('Password')) + { + # ...but upgrade the legacy password inplace. + $self->SUPER::SetPassword( $self->_GeneratePassword($value) ); + return(1); + } + + # no password check has succeeded. get out + + return (undef); } sub CurrentUserRequireToSetPassword { @@ -1349,6 +1331,268 @@ sub OwnGroups { return $groups; } +# }}} + +# {{{ Links + +#much false laziness w/Ticket_Overlay.pm. now with RT 3.8! + +# A helper table for links mapping to make it easier +# to build and parse links between tickets + +use vars '%LINKDIRMAP'; + +%LINKDIRMAP = ( + MemberOf => { Base => 'MemberOf', + Target => 'HasMember', }, + RefersTo => { Base => 'RefersTo', + Target => 'ReferredToBy', }, + DependsOn => { Base => 'DependsOn', + Target => 'DependedOnBy', }, + MergedInto => { Base => 'MergedInto', + Target => 'MergedInto', }, + +); + +sub LINKDIRMAP { return \%LINKDIRMAP } + +#sub _Links { +# my $self = shift; +# +# #TODO: Field isn't the right thing here. but I ahave no idea what mnemonic --- +# #tobias meant by $f +# my $field = shift; +# my $type = shift || ""; +# +# unless ( $self->{"$field$type"} ) { +# $self->{"$field$type"} = new RT::Links( $self->CurrentUser ); +# if ( $self->CurrentUserHasRight('ShowTicket') ) { +# # Maybe this ticket is a merged ticket +# my $Tickets = new RT::Tickets( $self->CurrentUser ); +# # at least to myself +# $self->{"$field$type"}->Limit( FIELD => $field, +# VALUE => $self->URI, +# ENTRYAGGREGATOR => 'OR' ); +# $Tickets->Limit( FIELD => 'EffectiveId', +# VALUE => $self->EffectiveId ); +# while (my $Ticket = $Tickets->Next) { +# $self->{"$field$type"}->Limit( FIELD => $field, +# VALUE => $Ticket->URI, +# ENTRYAGGREGATOR => 'OR' ); +# } +# $self->{"$field$type"}->Limit( FIELD => 'Type', +# VALUE => $type ) +# if ($type); +# } +# } +# return ( $self->{"$field$type"} ); +#} + +=head2 DeleteLink + +Delete a link. takes a paramhash of Base, Target and Type. +Either Base or Target must be null. The null value will +be replaced with this ticket\'s id + +=cut + +sub DeleteLink { + my $self = shift; + my %args = ( + Base => undef, + Target => undef, + Type => undef, + @_ + ); + + unless ( $args{'Target'} || $args{'Base'} ) { + $RT::Logger->error("Base or Target must be specified\n"); + return ( 0, $self->loc('Either base or target must be specified') ); + } + + #check acls + my $right = 0; + $right++ if $self->CurrentUserHasRight('AdminUsers'); + if ( !$right && $RT::StrictLinkACL ) { + return ( 0, $self->loc("Permission Denied") ); + } + +# # If the other URI is an RT::Ticket, we want to make sure the user +# # can modify it too... +# my ($status, $msg, $other_ticket) = $self->__GetTicketFromURI( URI => $args{'Target'} || $args{'Base'} ); +# return (0, $msg) unless $status; +# if ( !$other_ticket || $other_ticket->CurrentUserHasRight('ModifyTicket') ) { +# $right++; +# } +# if ( ( !$RT::StrictLinkACL && $right == 0 ) || +# ( $RT::StrictLinkACL && $right < 2 ) ) +# { +# return ( 0, $self->loc("Permission Denied") ); +# } + + my ($val, $Msg) = $self->SUPER::_DeleteLink(%args); + + if ( !$val ) { + $RT::Logger->debug("Couldn't find that link\n"); + return ( 0, $Msg ); + } + + my ($direction, $remote_link); + + if ( $args{'Base'} ) { + $remote_link = $args{'Base'}; + $direction = 'Target'; + } + elsif ( $args{'Target'} ) { + $remote_link = $args{'Target'}; + $direction='Base'; + } + + if ( $args{'Silent'} ) { + return ( $val, $Msg ); + } + else { + my $remote_uri = RT::URI->new( $self->CurrentUser ); + $remote_uri->FromURI( $remote_link ); + + my ( $Trans, $Msg, $TransObj ) = $self->_NewTransaction( + Type => 'DeleteLink', + Field => $LINKDIRMAP{$args{'Type'}}->{$direction}, + OldValue => $remote_uri->URI || $remote_link, + TimeTaken => 0 + ); + + if ( $remote_uri->IsLocal ) { + + my $OtherObj = $remote_uri->Object; + my ( $val, $Msg ) = $OtherObj->_NewTransaction(Type => 'DeleteLink', + Field => $direction eq 'Target' ? $LINKDIRMAP{$args{'Type'}}->{Base} + : $LINKDIRMAP{$args{'Type'}}->{Target}, + OldValue => $self->URI, + ActivateScrips => ! $RT::LinkTransactionsRun1Scrip, + TimeTaken => 0 ); + } + + return ( $Trans, $Msg ); + } +} + +sub AddLink { + my $self = shift; + my %args = ( Target => '', + Base => '', + Type => '', + Silent => undef, + @_ ); + + unless ( $args{'Target'} || $args{'Base'} ) { + $RT::Logger->error("Base or Target must be specified\n"); + return ( 0, $self->loc('Either base or target must be specified') ); + } + + my $right = 0; + $right++ if $self->CurrentUserHasRight('AdminUsers'); + if ( !$right && $RT::StrictLinkACL ) { + return ( 0, $self->loc("Permission Denied") ); + } + +# # If the other URI is an RT::Ticket, we want to make sure the user +# # can modify it too... +# my ($status, $msg, $other_ticket) = $self->__GetTicketFromURI( URI => $args{'Target'} || $args{'Base'} ); +# return (0, $msg) unless $status; +# if ( !$other_ticket || $other_ticket->CurrentUserHasRight('ModifyTicket') ) { +# $right++; +# } +# if ( ( !$RT::StrictLinkACL && $right == 0 ) || +# ( $RT::StrictLinkACL && $right < 2 ) ) +# { +# return ( 0, $self->loc("Permission Denied") ); +# } + + return $self->_AddLink(%args); +} + +#sub __GetTicketFromURI { +# my $self = shift; +# my %args = ( URI => '', @_ ); +# +# # If the other URI is an RT::Ticket, we want to make sure the user +# # can modify it too... +# my $uri_obj = RT::URI->new( $self->CurrentUser ); +# $uri_obj->FromURI( $args{'URI'} ); +# +# unless ( $uri_obj->Resolver && $uri_obj->Scheme ) { +# my $msg = $self->loc( "Couldn't resolve '[_1]' into a URI.", $args{'URI'} ); +# $RT::Logger->warning( "$msg\n" ); +# return( 0, $msg ); +# } +# my $obj = $uri_obj->Resolver->Object; +# unless ( UNIVERSAL::isa($obj, 'RT::Ticket') && $obj->id ) { +# return (1, 'Found not a ticket', undef); +# } +# return (1, 'Found ticket', $obj); +#} + +=head2 _AddLink + +Private non-acled variant of AddLink so that links can be added during create. + +=cut + +sub _AddLink { + my $self = shift; + my %args = ( Target => '', + Base => '', + Type => '', + Silent => undef, + @_ ); + + my ($val, $msg, $exist) = $self->SUPER::_AddLink(%args); + return ($val, $msg) if !$val || $exist; + + my ($direction, $remote_link); + if ( $args{'Target'} ) { + $remote_link = $args{'Target'}; + $direction = 'Base'; + } elsif ( $args{'Base'} ) { + $remote_link = $args{'Base'}; + $direction = 'Target'; + } + + # Don't write the transaction if we're doing this on create + if ( $args{'Silent'} ) { + return ( $val, $msg ); + } + else { + my $remote_uri = RT::URI->new( $self->CurrentUser ); + $remote_uri->FromURI( $remote_link ); + + #Write the transaction + my ( $Trans, $Msg, $TransObj ) = + $self->_NewTransaction(Type => 'AddLink', + Field => $LINKDIRMAP{$args{'Type'}}->{$direction}, + NewValue => $remote_uri->URI || $remote_link, + TimeTaken => 0 ); + + if ( $remote_uri->IsLocal ) { + + my $OtherObj = $remote_uri->Object; + my ( $val, $Msg ) = $OtherObj->_NewTransaction(Type => 'AddLink', + Field => $direction eq 'Target' ? $LINKDIRMAP{$args{'Type'}}->{Base} + : $LINKDIRMAP{$args{'Type'}}->{Target}, + NewValue => $self->URI, + ActivateScrips => ! $RT::LinkTransactionsRun1Scrip, + TimeTaken => 0 ); + } + return ( $val, $Msg ); + } + +} + + + +# }}} + =head2 HasRight Shim around PrincipalObj->HasRight. See L<RT::Principal>. @@ -1370,7 +1614,7 @@ admin right) 'ModifySelf', return 1. otherwise, return undef. sub CurrentUserCanModify { my $self = shift; - my $field = shift; + my $right = shift; if ( $self->CurrentUser->HasRight(Right => 'AdminUsers', Object => $RT::System) ) { return (1); @@ -1378,7 +1622,7 @@ sub CurrentUserCanModify { #If the field is marked as an "administrators only" field, # don\'t let the user touch it. - elsif ( $self->_Accessible( $field, 'admin' ) ) { + elsif ( $self->_Accessible( $right, 'admin' ) ) { return (undef); } @@ -1724,14 +1968,6 @@ sub PreferredKey { my $self = shift; return undef unless RT->Config->Get('GnuPG')->{'Enable'}; - - if ( ($self->CurrentUser->Id != $self->Id ) && - !$self->CurrentUser->HasRight(Right =>'AdminUsers', Object => $RT::System) ) { - return undef; - } - - - my $prefkey = $self->FirstAttribute('PreferredKey'); return $prefkey->Content if $prefkey; @@ -1758,16 +1994,6 @@ sub PreferredKey sub PrivateKey { my $self = shift; - - #If the user wants to see their own values, let them. - #If the user is an admin, let them. - #Otherwwise, don't let them. - # - if ( ($self->CurrentUser->Id != $self->Id ) && - !$self->CurrentUser->HasRight(Right =>'AdminUsers', Object => $RT::System) ) { - return undef; - } - my $key = $self->FirstAttribute('PrivateKey') or return undef; return $key->Content; } @@ -1775,11 +2001,7 @@ sub PrivateKey { sub SetPrivateKey { my $self = shift; my $key = shift; - - unless ($self->CurrentUserCanModify('PrivateKey')) { - return (0, $self->loc("Permission Denied")); - } - + # XXX: ACL unless ( $key ) { my ($status, $msg) = $self->DeleteAttribute('PrivateKey'); unless ( $status ) { @@ -1802,7 +2024,7 @@ sub SetPrivateKey { ); return ($status, $self->loc("Couldn't set private key")) unless $status; - return ($status, $self->loc("Set private key")); + return ($status, $self->loc("Unset private key")); } sub BasicColumns { diff --git a/rt/lib/RT/Users.pm b/rt/lib/RT/Users.pm index e1c8825af..d58f69653 100755 --- a/rt/lib/RT/Users.pm +++ b/rt/lib/RT/Users.pm @@ -1,51 +1,26 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# +# (Except where explictly superceded by other copyright notices) +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. # @@ -89,7 +64,7 @@ sub _Init { } -=head2 NewItem +=item NewItem Returns an empty new RT::User item @@ -126,7 +101,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz These overlay files can contain new subs or subs to replace existing subs in this module. -Each of these files should begin with the line +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Users_Overlay.pm b/rt/lib/RT/Users_Overlay.pm index a0eabed8e..ea12dbe7f 100644 --- a/rt/lib/RT/Users_Overlay.pm +++ b/rt/lib/RT/Users_Overlay.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# <sales@bestpractical.com> -# +# +# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +# <jesse@bestpractical.com> +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,7 +43,7 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} =head1 NAME @@ -379,6 +379,7 @@ sub WhoHaveRight { $from_group->WhoHaveGroupRight( %args ); #XXX: DIRTY HACK + use DBIx::SearchBuilder 1.50; #no version on ::Union :( use DBIx::SearchBuilder::Union; my $union = new DBIx::SearchBuilder::Union; $union->add( $from_group ); |